Search Results Display in a Process Control System

ABSTRACT

To provide search capabilities in a process control system, a contextual knowledge repository is generated that organizes process plant-related data according to semantic relations between the process plant-related data and the process plant entities. When a user submits a process plant search query related to process plant entities within a process plant, search results are obtained by identifying a data set from the contextual knowledge repository which is responsive to the process plant search query. The search results are then presented on a user interface device based on the identified data set. To allow for searches to be performed by user interface devices external to the process plant, a data diode is disposed between a field-facing component and an edge-facing component of the process plant so that data flows from the field-facing component to the edge-facing component without flowing from the edge-facing component to the field-facing component.

RELATED REFERENCES

The present disclosure is related to co-owned US Patent Application No.(Attorney-Docket No. 06005-594531), filed concurrently herewith andentitled “Smart Search Capabilities in a Process Control System”; andco-owned US Patent Application No. (Attorney-Docket No. 06005-594585),filed concurrently herewith and entitled “Presentation of ProcessControl Information within a Vehicle,” the entire disclosures of whichare incorporated by reference herein.

TECHNICAL FIELD

The present disclosure relates generally to process plants and toprocess control systems, and more particularly, to providing searchcapabilities for conducting search queries of process plant-related datain process plants/process control systems and to securing the deliveryof process plant-related data from process plants/process controlsystems to external systems for presenting the process plant-relateddata on devices which are remote from the process plants.

BACKGROUND

Distributed process control systems, like those used in chemical,petroleum, pharmaceutical, paper product processing, or other processplants, typically include one or more process controllerscommunicatively coupled to one or more field devices via analog, digitalor combined analog/digital buses, or via a wireless communication linkor network. The field devices, which may be, for example, valves, valvepositioners, switches and transmitters (e.g., temperature, pressure,level and flow rate sensors), are located within the process environmentand generally perform physical or process control functions such asopening or closing valves, measuring process parameters such aspressure, temperature, etc., and the like to control one or more processexecuting within the process plant or system. Smart field devices, suchas the field devices conforming to the well-known Fieldbus protocol, mayalso perform control calculations, alarming functions, and other controlfunctions commonly implemented within the controller. The processcontrollers, which are also typically located within the plantenvironment, receive signals indicative of process measurements made bythe field devices and/or other information pertaining to the fielddevices and execute a controller application that runs, for example,different control modules which make process control decisions, generatecontrol signals based on the received information and coordinate withthe control modules or blocks being performed in the field devices, suchas HART®, WirelessHART®, and FOUNDATION® Fieldbus field devices. Thecontrol modules in the controller send the control signals over thecommunication lines or links to the field devices to thereby control theoperation of at least a portion of the process plant or system.

Information from the field devices and the controller is usually madeavailable over a data highway to one or more other hardware devices,such as operator workstations, personal computers or computing devices,data historians, report generators, centralized databases, or othercentralized administrative computing devices that are typically placedin control rooms or other locations away from the harsher plantenvironment. Each of these hardware devices typically is centralizedacross the process plant or across a portion of the process plant. Thesehardware devices run applications that may, for example, enable anoperator to perform functions with respect to controlling a processand/or operating the process plant, such as changing settings of theprocess control routine, modifying the operation of the control moduleswithin the controllers or the field devices, viewing the current stateof the process, viewing alarms generated by field devices andcontrollers, simulating the operation of the process for the purpose oftraining personnel or testing the process control software, keeping andupdating a configuration database, etc. The data highway utilized by thehardware devices, controllers and field devices may include a wiredcommunication path, a wireless communication path, or a combination ofwired and wireless communication paths.

As an example, the DeltaV™ control system, sold by Emerson AutomationSolutions, includes multiple applications stored within and executed bydifferent devices located at diverse places within a process plant. Aconfiguration application, which resides in one or more workstations orcomputing devices, enables users to create or change process controlmodules and download these process control modules via a data highway todedicated distributed controllers. Typically, these control modules aremade up of communicatively interconnected function blocks, which areobjects in an object oriented programming protocol that performfunctions within the control scheme based on inputs thereto and thatprovide outputs to other function blocks within the control scheme. Theconfiguration application may also allow a configuration designer tocreate or change operator interfaces which are used by a viewingapplication to display data to an operator and to enable the operator tochange settings, such as set points, within the process controlroutines. Each dedicated controller and, in some cases, one or morefield devices, stores and executes a respective controller applicationthat runs the control modules assigned and downloaded thereto toimplement actual process control functionality. The viewingapplications, which may be executed on one or more operator workstations(or on one or more remote computing devices in communicative connectionwith the operator workstations and the data highway), receive data fromthe controller application via the data highway and display this data toprocess control system designers, operators, or users using the userinterfaces, and may provide any of a number of different views, such asan operator's view, an engineer's view, a technician's view, etc. A datahistorian application is typically stored in and executed by a datahistorian device that collects and stores some or all of the dataprovided across the data highway while a configuration databaseapplication may run in a still further computer attached to the datahighway to store the current process control routine configuration anddata associated therewith. Alternatively, the configuration database maybe located in the same workstation as the configuration application.

Generally speaking, a process control system of a process plant includesfield devices, controllers, workstations, and other devices that areinterconnected by a set of layered networks and buses. The processcontrol system may, be in turn, be connected with various business andexternal networks, e.g., to reduce manufacturing and operational costs,enhance productivity and efficiencies, provide timely access to processcontrol and/or process plant information, etc. On the other hand, theinterconnection of process plants and/or process control systems toenterprise and/or external networks and systems increases the risk ofcyber intrusions and/or malicious cyber attacks that may arise fromexpected vulnerabilities in commercial systems and applications, such asthose used in enterprise and/or external networks. Cyber intrusions andmalicious cyber attacks of process plants, networks, and/or controlsystems may negatively affect the confidentiality, integrity, and/oravailability of information assets, which, generally speaking, arevulnerabilities similar to those of general purpose computing networks.However, unlike general purpose computer networks, cyber intrusions ofprocess plants, networks, and/or control systems may also lead todamage, destruction, and/or loss of not only plant equipment, product,and other physical assets, but also to the loss of human life. Forexample, a cyber intrusion may cause a process to become uncontrolled,and thereby produce explosions, fires, floods, exposure to hazardousmaterials, etc. Thus, securing communications related to process controlplants and systems is of paramount importance.

As a result, process plant personnel such as operators typically cannotview process plant-related data indicative of the run-time operation ofthe process plant from remote sources, such as mobile devices or vehiclehead units. Furthermore, while process plant personnel interact withoperator display applications which provide displays and generatereports regarding the operating state of the control system or thedevices within the process plant, the operator display applicationstypically do not allow users to search for items within the processplant, such as control modules, alarms, the amount of a product beingproduced over a particular time period, etc. Each data point within aprocess plant may have several descriptors and aspects, such as arun-time aspect representing a physical measurement or set value, aconfiguration, a current value, a mode, a range, a status, a quality,and other descriptors for the data point. As a result, the complexity ofthe process plant-related data within the process plant is enormousmaking it difficult to search for particular data items within such alarge data set. Searching becomes even more difficult without contextthat provides a situational awareness of the run-time data.

SUMMARY

Techniques, systems, apparatuses, components, devices, and methods forproviding search functionality within the process plant and for remotelyreceiving and viewing process plant-related data are disclosed herein.Said techniques, systems, apparatuses, components, devices, and methodsmay apply to industrial process control systems, environments, and/orplants, which are interchangeably referred to herein as “industrialcontrol,” “process control,” or “process” systems, environments, and/orplants. Typically, such systems and plants provide control, in adistributed manner, of one or more processes that operate tomanufacture, refine, transform, generate, or produce physical materialsor products.

To provide search functionality within the process plant, a processplant search query server receives and analyzes process plant searchqueries from software modules and/or user interface devices, such asoperator workstations, mobile devices such as smart phones and tablets,vehicle head units, etc. The process plant search queries may be searchqueries related to process plant entities within the process plant, suchas search queries regarding control modules, alarms, process flowmodules, process parameter data for process plant entities, productparameter data for a product generated by the process plant entities,the amount of a product being produced over a particular time period,etc.

The process plant search queries may be provided by users in a naturallanguage format, such as “Show me the alarms at my boiler unit.” Theprocess plant search query server then analyzes the process plant searchquery to identify the subject of the search query (e.g., alarms),modifiers or filters for filtering the search results (e.g., alarmsspecific to a boiler unit), and to identify the context of the processplant search query (e.g., the user is a plant supervisor for a processplant in Houston, Texas and supervises Plant Area A which has one boilerunit). Then the process plant search query server obtains processplant-related data related to the process plant search query. Forexample, the process plant search query server may obtain processplant-related data from a contextual knowledge repository that organizesprocess plant-related data according to semantic relations between theprocess plant-related data and the process plant entities. In theexample above, the process plant search query server may obtain processplant-related data from the contextual knowledge repository for each ofthe alarms corresponding to the boiler unit in Plant Area A in theHouston plant.

The process plant search query server then generates a set of processplant search results using the obtained process plant-related data. Forexample, the set of process plant search results may include six processplant search results each corresponding to a different alarm. Theprocess plant search query server may then provide the set of searchresults for presentation by the user interface device. For example, thesearch results may be presented graphically on a user interface or in anaudio format via a speaker. In some implementations, each search resultincludes a selectable link to additional information regarding thesearch result. For example, a search results display on the userinterface device may present the names of each of the alarms (e.g.,Alarm A, Alarm B, Alarm C, etc.), where each of the names includes aselectable link to additional information regarding the alarm. When oneof the names is selectable, the user interface device may presentdetailed information regarding the alarm (e.g., the type of alarm, thepriority of the alarm, an alarm message, control modules associated withthe alarm, etc.). The user interface device may also present a processflow module graphically depicting the alarm and process plant entitiescorresponding to the alarm. The search result display may also present apreview of the detailed information regarding the alarm, such asthumbnail image of a control module or process flow module thatgraphically depicts the alarm.

In some implementations, the process plant search results may be rankedand presented in a ranked order on the search results display. Forexample, the process plant search query server may assign a score toeach of the process plant search results according to relevance to theprocess plant search query. More specifically, the process plant searchquery server may determine that high priority or critical alarms havehigher relevance to the process plant search query than low priorityalarms. Accordingly, the process plant search results corresponding tohigh priority or critical alarms may be ranked above the process plantsearch results corresponding to low priority alarms. Thus, the processplant search results corresponding to high priority or critical alarmsmay be presented above the process plant search results corresponding tolow priority alarms on the search results display.

Furthermore, the presentation of the process plant search results may beadjusted based on the type, size, and/or capabilities of the userinterface device. If the user interface device has a display but doesnot have a speaker, the process plant search results may be presentedgraphically. If the user interface device has a speaker but does nothave a display, the process plant search results may be presentedaudibly. Additionally, if the user interface device is a particular typeor has a screen size below a threshold size (e.g., a mobile device), theprocess plant search query server may provide a single process plantsearch result to display on the user interface device (e.g., the highestranking process plant search result). On the other hand, if the userinterface device has a screen size above the threshold size (e.g., anoperator workstation), the process plant search query server may providethe set of process plant search results to display on the user interfacedevice.

In some implementations, the process plant search query server interactswith process plant-related data generated within the process plant. Inthis manner, the process plant search query server may provide processflow modules, control modules, etc., which are communicatively coupledto controllers and field devices within the process plant to the userinterface device as search results. The user may then interact with theprocess flow modules, control modules, etc., such that changes toprocess plant-related data included in the process flow modules, controlmodules, etc., result in changes in the on-line process plant. Forexample, a user may adjust a set point value via a user control on adisplay of a process flow module. The user interface device may thencommunicate with the controller to adjust the set point value in theon-line process plant.

In other implementations, the process plant search query server does notinteract directly with process plant-related data generated within theprocess plant. Instead, some of the process plant-related data generatedwithin the process plant is duplicated and provided across aunidirectional data diode to an edge-facing component. In this manner,users may view a duplicate of the process plant-related datarepresenting activity in the on-line process plant without being able tointeract with controllers, field devices, or any other devices operatingin the on-line process plant. Accordingly, process plant search resultsand/or other data from the process plant search query server may beexposed to external sources, such as mobile devices, vehicle head units,etc., which are not authorized to communicate with process plantequipment and do not include the level of security necessary forauthorized devices.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example edge gateway system for aprocess plant or process control system;

FIG. 2 is a block diagram of an example process plant that illustrates,inter alia, interconnections between various example components of theprocess plant or process control system, the process control systemitself, and other example systems and/or networks;

FIG. 3 illustrates a graphical representation of an example contextualknowledge repository storing process plant-related data for a processplant or process control system;

FIG. 4 illustrates a block diagram of an example process plant searchquery server;

FIG. 5 illustrates an example process plant display including a searchbar for entering process plant search queries;

FIG. 6 illustrates an example process plant search results displayincluding process plant search results in response to a process plantsearch query;

FIG. 7 illustrates an example detailed search result display which maybe presented in response to a selection of a process plant search resultincluded in FIG. 6;

FIG. 8 illustrates another example process plant search results displayincluding a process plant search result in response to a process plantsearch query;

FIG. 9 illustrates a display of a vehicle head unit for presentingprocess plant-related data at a remote location from the process plant;

FIG. 10 illustrates example process plant-related data presented on thevehicle head unit;

FIG. 11 illustrates another example of process plant-related datapresented on the vehicle head unit;

FIG. 12 is a flow diagram representing an exemplary method for providingprocess plant search results in response to a process plant searchquery;

FIG. 13 is a flow diagram representing an exemplary method forpresenting process plant search results in response to a process plantsearch query; and

FIG. 14 is a flow diagram representing an exemplary method forpresenting process plant-related data within a vehicle head unit.

DETAILED DESCRIPTION

As discussed above, process plant-related data is duplicated andreceived at a computing device in a secure manner. Once the processplant-related data is received in the secure manner, the processplant-related data may be provided to external sources, such as mobiledevices, vehicle head units, etc., which are not authorized tocommunicate with the process plant or controllers, field devices, orother devices within the process plant. The process plant-related datamay be provided to the external sources to present reports, graphicalrepresentations of control modules and process flow modules, and otherinformation related to the process plant which process plant personneltypically view at plant workstations. In this manner, process plantpersonnel may view this information remotely without the risk ofunauthorized personnel being able to control devices in the processplant from external sources.

Furthermore, the process plant-related data may be presented as processplant search results in response to process plant search queriesgenerated on user interface devices, which may operate within theprocess plant (e.g., operator workstations, mobile workstations) orexternally (e.g., mobile devices, vehicle head units, desktop or laptopcomputers, wearable devices, etc.).

Securing process plants and process control systems against cyberintrusions and malicious cyber attacks typically utilizes a layered orleveled security hierarchy, with at least some of the layers or levelssecured by using firewalls and other security mechanisms. Using thePurdue Model for Control Hierarchy logical framework standardized by ISA(International Society of Automation) 95.01—IEC (InternationalElectrotechnical Commission) 62264-1 as an example framework, processcontrol systems generally fall into security levels 0-2 (e.g., levelsthat have a higher level of trust in the safety and validity ofmessages, packets, and other communications), and manufacturing,corporate, and enterprise systems generally fall into security levels3-5 (e.g., levels that have a lower level of trust). For example,process plant systems, networks, and devices at security levels 0-3 maybe protected against threats from enterprise networks at security levels4-5, and/or from any external networks higher than security level 5exploiting the enterprise networks, e.g., by using a demilitarized zone(DMZ) and/or one or more firewalls. However, as more and more servicesand applications that operate on process plant-related data are moved toexecute remotely, e.g., on networks and systems outside of or externalto the process plant (e.g., at security levels 4 and/or 5 within theenterprise or business), and/or even on networks and systems that areexternal to the enterprise or business (e.g., above security level 5,via the Internet or other public network), stronger techniques forpreventing process plant systems, networks, and devices from beingcompromised are needed.

The novel systems, components, apparatuses, methods, and techniquesdescribed herein address these and other security issues related toprocess plants and their networks, and in particular are directed to thesecure delivery of process plant-related data to one or more externalsystems that are consumers of the process plant-related data.

To illustrate, FIG. 1 is a block diagram of an example edge gatewaysystem 1 which securely delivers process plant-related data from aprocess plant 5 to one or more external systems 8. The edge gatewaysystem 1 includes a field-facing component 10 that is communicativelyconnected to an edge-facing component 12 via a data diode 15. Thefield-facing component 10 includes one or more processors 18 and one ormore non-transitory memories or data storage devices 20 storing at leastone set of data and at least one set of computer-executableinstructions, where the at least one set of computer-executableinstructions are executable by the one or more processors 18. Forexample, as illustrated in FIG. 1, the one or more memories 20 of thefield-facing component 10 store respective data sets such as one or moreinterest lists 22, an exposable data type system 24, and optionallyother data sets (not shown). The one or more memories 20 of thefield-facing component 10 further store computer-executable instructionsfor a data typer 25, and may store other sets of computer-executableinstructions (not shown). The field-facing component 10 iscommunicatively connected to one or more process plant communicationsnetworks, data networks, and/or links 28, which may include any numberof wired and/or wireless communications networks, data networks, and/orlinks that communicatively connect various devices and/other datasources 30 which are associated with the process plant 5 and whichgenerate data, e.g., while the process plant 5 is operating to controlan industrial process. More detailed descriptions of embodiments of thefield-facing component 10 of the edge gateway system 1 and itssubcomponents are provided elsewhere within this disclosure.

The edge-facing component 12 of the edge gateway system 1 includes oneor more processors 35 and one or more non-transitory memories or datastorage devices 38 storing at least one set of data and at least one setof computer-executable instructions, where the at least one set ofcomputer-executable instructions are executable by the one or moreprocessors 35. For example, as illustrated in FIG. 1, the one or morememories 38 of the edge-facing component 12 store respective data setscorresponding to a data lake 40 and a contextual knowledge repository42, and the one or more memories 38 of the edge-facing component 12store at least a partial copy 24B or duplicate of the exposable datatype system 24A of the field-facing component 10, respectivecomputer-executable instructions for a contextual knowledge miner 45 andone or more access mechanisms 48 for the contextual knowledge repository42. Of course, although not shown in FIG. 1, the one or more memories 38of the edge-facing component 12 may store other sets of data and/orother sets of computer-executable instructions. As also illustrated inFIG. 1, the edge-facing component 12 of the edge gateway system 1 iscommunicatively connected to one or more external systems 8 via one ormore external communications networks, data networks, and/or links 50.The one or more external communications networks, data networks, and/orlinks 50 may include any number of wired and/or wireless communicationsnetworks, data networks, and/or links, and may include any number ofprivate and/or public networks and/or links. The one or more externalsystems 8 may include any number of public computing systems and/orprivate computing systems, which may be respectively implemented usingany suitable technology, such as banks of servers, cloud computingsystems, and the like, and on which various applications (e.g.,third-party applications, websites, etc.) may execute. More detaileddescriptions of embodiments of the edge-facing component 12 and itssubcomponents are provided elsewhere within this disclosure.

As shown in FIG. 1, the field-facing component 10 and the edge-facingcomponent 12 are interconnected via a data diode 15 (although in someimplementations of the edge gateway system 1 (not shown), the data diode15 may be omitted and the field-facing component 10 and the edge-facingcomponent 12 are in direct connection, or are an integral, unitarylogical and/or physical component). At any rate, as shown in FIG. 1, thedata diode 15 includes one or more transmission media via which data(e.g. electronic data) is transported from the field-facing component 10to the edge-facing component 12, where the data diode 15 is the onlycommunicative connection between the field-facing component 10 and theedge-facing component 12. In a preferred embodiment, the data diode 15is unidirectional, so that any and all types of data (e.g., signalingdata, control data, administrative data, payload data, etc.) flows onlyfrom the field-facing component 10 to the edge-facing component 12, anddoes not flow (and indeed, in some embodiments, is not physically ableto flow) from the edge-facing component 12 to the field-facing component10. That is, the data diode 15 may be physically and/or logicallyconfigured to prevent any and all types of data (e.g., signaling data,control data, administrative data, payload data, etc.) from flowing fromthe edge-facing component 12 to the field-facing component 10. In anexample, the unidirectional data diode 15 is implemented using anoptical fiber link or cable. In another example, software and/orhardware of the unidirectional data diode 15 may be otherwise configuredto prevent the flow of any type of data (e.g., signaling data, controldata, administrative data, payload data, etc.) from the edge-facingcomponent 12 to the field-facing component 10. For instance, physicalports of the edge-facing component 12 that would otherwise receive datafrom the one or more external systems 8 may be blocked, disabled, and/oromitted.

Generally speaking, the edge gateway system 1 securely connects and/orbridges the process plant 5 and associated systems at lower-numberedsecurity levels with one or more systems 8 at higher-numbered securitylevels. For example, with reference to the Purdue Model (or othersimilar security hierarchy), the data sources 30 and the networks/links28 via which the edge gateway system 1 obtains process-plant relateddata may be at lower-numbered security levels (e.g., security level 0through security level 2), and may include, for example, process controlsystems, configuration systems, analytics systems,communication/networking systems, asset management systems, diagnosticand/or testing tools and/or systems, commissioning tools and/or systems,user devices and/or operator interfaces, historian systems, batchsystems, and other systems, networks, and/or applications associatedwith the process plant 5. Accordingly, for ease of discussion herein,and not for limitation purposes, the term “process plant 5” is used tocollectively refer to the physical process plant as well as to othersystems associated with and in communicative connection with thephysical process plant that generate and/or communicate data oflower-numbered levels of security.

At the edge gateway system 1 of FIG. 1, the field-facing component 10that obtains and initially processes the process plant-related datagenerated by the process plant 5 may be at security level 2 to securitylevel 3, and the data diode 15 and edge-facing component 12 may be atsecurity level 3. The one or more external systems 8 may be at securitylevel 4 or higher, and may include any number of public and/or privatesystems and various applications executing thereon, such as enterpriseapplications, third-party applications, publicly-available applications,websites, etc. As such, the edge gateway system 1 securely delivers datagenerated by process plant-related systems, networks, and/orapplications 5 at lower-numbered levels of security to systems,networks, and/or applications 8 at higher-numbered levels of security.

In particular, as shown in FIG. 1, the field-facing component 10 of theedge gateway system 1 obtains or collects data from data sources 30 inaccordance with one or more interest lists 22 stored at the field-facingcomponent 10. Interest lists 22 indicate specific process plant-relateddata that is generated by the process plant 5 in relation to the plant 5operating to control an industrial process, wherein the indicatedprocess plant-related data is allowed to be exposed (e.g., is exposable)to the external systems, networks, and/or applications 8. As such,interest lists 22 included in the edge gateway system 1 provide aninitial level of field-facing security against protected data beinginadvertently released from the process plant 5 to external systems 8.Interest lists 22 may indicate specific data-of-interest and/orcombinations thereof, such as runtime data, event data, historical data,configuration data, and/or any other type of process plant-related datathat is generated by devices, components, and/or systems of and/orrelated to the process plant 5 at lower-numbered levels of security(e.g., at security levels 0-2). Interest lists 22 may be configuredand/or defined via an Interest Studio (not shown in FIG. 1), which isdescribed in more detail elsewhere within this disclosure.

Further, at the field-facing component 10, the data typer 25respectively types obtained interest list data in accordance with theexposable data type system 24. Generally speaking, the exposable datatype system 24 defines a system of data types (including datadefinitions, names, values, fields, structures, classes, objects, etc.)that are exposed or otherwise made available to the external systems 8.Additionally, the exposable data system 24 defines mappings,conversions, groupings, and/or other arrangements of processplant-related data types into the exposable data types so that processplant-related data content may be utilized and understood by theexternal systems 8. The term “process plant-related data types,” asutilized herein, generally refers to data types (e.g., data definitions,names, values, fields, structures, classes, objects, etc.) that havebeen defined and/or configured for use by applications, devices,components, systems, and/or networks of the process plant 5. In anembodiment, the exposable data type system 24 may be configured via theInterest Studio (e.g., in a manner such as described elsewhere withinthis disclosure). At any rate, the exposable data system 24 allows theexternal systems 8 to interpret process plant-related data that isgenerated by the process plant 5 and associated lower security levelsystems without the external systems 8 needing to be aware of anyinternal data configurations of the plant 5, and without having to queryand/or initiate communications with and/or send responses to the processplant 5. As such, the exposable data type system 24 and data typer 25 ofthe edge gateway system 1 further protect the process plant 5 frompossible security breaches from external systems 8. The exposable datatype system 24 and the data typer 25 are described in more detailelsewhere in this disclosure.

At least due to the use of the exposable data type system 24 and thedata typer 25, the data diode 15 may be a truly unidirectional datadiode. Currently known data diodes provide for unidirectional flow ofcontent data, but allow for bi-directional flow of signaling, control,and/or administrative data, such by allowing acknowledgements and/orerror conditions to be communicated from a content data-receiving end tothe content data-sending end. However, the data diode 15 of the edgegateway system 1 may be truly unidirectional in that no types of dataflow from its content data-receiving end to its content data-sendingend. Indeed, in embodiments, the data diode 15 is physically configuredto prevent any type of data (e.g., signaling, control, administrative,content, etc.) from being delivered from the edge-facing component 12 tothe field-facing component 10, e.g., such as in embodiments in which thedata diode 15 is implemented via optical transmission media. As such,due to at least the truly unidirectional nature of the data diode 15,the data diode 15 of the edge gateway system 1 still further protectsthe process plant 5 from possible security breaches from externalsystems 8.

At the edge-facing component 12 of the edge gateway system 1, the typed,content data that is received from the field-facing component 10 via thedata diode 15 is stored in the data lake 40. The contextual knowledgeminer 45 mines the data lake 40 to discover relationships betweenvarious content data stored in the data lake 40, andgenerates/modifies/updates the contextual knowledge repository 42 sothat the contextual knowledge repository 42 includes indications of boththe received content data as well as the discovered relationships. Assuch, the contextual knowledge repository 42 stores both processplant-related content data (e.g., run-time data, event data, historicaldata, and/or other types of data provided by the process plant 5, aswell as context data that is indicative of relationships betweenprovided process plant-related content data, conditions corresponding tothe generation, delivery, and/or reception of the process plant-relatedcontent data within the process plant 5, and/or other types of contextsof the process plant-related content data. Knowledge that is stored inthe contextual knowledge repository 42 is exposable (e.g., is madeavailable) to the one or more external systems 8.

Indeed, the edge-facing component 12 provides one or more accessmechanisms 48 via which the external systems 8 may access at least someof the knowledge stored in the contextual knowledge repository 42. Eachaccess mechanism may respectively include yet another level ofprotection against possible security breaches from the external systems8. For example, access mechanisms 48 may be implemented usingapplication programming interfaces (APIs), containers, servers, etc. toaid in preventing external systems from authorized access of thecontextual knowledge repository 42 and/or of the process plant 5. Theedge-facing component 12 of the edge gateway system 1 and itssubcomponents are discussed in more detail elsewhere in this disclosure.

Generally speaking, the features, components, and architecture of theedge gateway system 1 provide almost unlimited access of externalsystems 8 to process plant-related data in a highly secure manner andwithout impacting the performance of the process plant 5. Additionally,as the edge gateway system 1 contextually provides process plant-relateddata to the external systems 8, e.g., provides process plant-relatedcontent data within the context of the configuration of the processplant 5, external systems 8 may more quickly and easily find and consumeprocess-plant related data. Further, the edge gateway system 1 allowsfor a multiplicity of different types of applications to safely andeasily operate on the contextual knowledge corresponding to the processplant 5, such as mobile connectivity applications, advanced analyticalapplications, open-systems technology applications (e.g., Node.JS,Docker, Linux, etc.), custom applications, IoT applications, IIoTapplications, business and/or enterprise applications (e.g., Excel,Power BI, etc.), and/or other types of applications. Still further, theedge gateway system 1 is easily adaptable to aggregate processplant-related data from multiple process plants and discover relatedaggregated knowledge therefrom, as well as to aggregate data fromexternal systems at higher levels of security (such as weather systems,supply chain systems, financial systems, etc.) and discover relatedaggregated knowledge therefrom.

FIG. 2 is a block diagram of an example process plant 100 which isconfigured to control an industrial process during on-line or run-timeoperations, and from which process plant-related may be securelydelivered via embodiments of the edge gateway system 1. For example, theprocess plant 5 of FIG. 1 may include at least portions of the processplant 100 of FIG. 2. As shown in FIG. 2, the process plant 100 iscommunicatively connected to an edge gateway system 102, which may be anembodiment of the edge gateway system 1 of FIG. 1, for example.

The process plant 100 (which is also interchangeably referred to hereinas a process control system 100 or process control environment 100)includes one or more process controllers that receive signals indicativeof process and/or other types of measurements made by field devices,process this information to implement a control routine, and generatecontrol signals that are sent over wired or wireless process controlcommunication links or networks to other field devices to control theoperation of an industrial process in the plant 100. Typically, at leastone field device performs a physical function (e.g., opening or closinga valve, increasing or decreasing a temperature, taking a measurement,sensing a condition, etc.) to control the operation of the process. Sometypes of field devices communicate with controllers by using I/Odevices. Process controllers, field devices, and I/O devices may bewired or wireless, and any number and combination of wired and wirelessprocess controllers, field devices and I/O devices may be included inthe process plant environment or system 100.

For example, FIG. 2 illustrates a process controller 111 that iscommunicatively connected to wired field devices 115-122 viainput/output (I/O) cards 126 and 128, and that is communicativelyconnected to wireless field devices 140-146 via a wireless gateway 135and a process control data highway or backbone 110. The process controldata highway 110 may include one or more wired and/or wirelesscommunication links, and may be implemented using any desired orsuitable or communication protocol such as, for example, an Ethernetprotocol, an IP or other packet protocol, etc. In some configurations(not shown), the controller 111 may be communicatively connected to thewireless gateway 135 using one or more communications networks otherthan or in addition to the backbone 110, such as by using any number ofother wired or wireless communication links that support one or morecommunication protocols, data protocols, and/or industrial automationprotocols, e.g., Wi-Fi or other IEEE 802.11 compliant wireless localarea network protocol, mobile communication protocol (e.g., WiMAX, LTE,or other ITU-R compatible protocol), Bluetooth®, HART®, WirelessHART®,HART-IP, Profibus, FOUNDATION® Fieldbus, etc.

The controller 111, which may be, by way of example, the DeltaVcontroller sold by Emerson Process Management, may operate to implementa batch process or a continuous process using at least some of the fielddevices 115-122 and 140-146. In an embodiment, in addition to beingcommunicatively connected to the process control data highway 110, thecontroller 111 is also communicatively connected to at least some of thefield devices 115-122 and 140-146 using any desired hardware andsoftware associated with, for example, standard 4-20 mA devices, I/Ocards 126, 128, and/or any smart communication protocol such as theFOUNDATION® Fieldbus protocol, the HART® protocol, the WirelessHART®protocol, etc. In FIG. 2, the controller 111, the field devices 115-122and the I/O cards 126, 128 are wired devices, and the field devices140-146 are wireless field devices. Of course, the wired field devices115-122 and wireless field devices 140-146 could conform to any otherdesired standard(s) or protocols, such as any wired or wirelessprotocols, including any standards or protocols developed in the future.

The process controller 111 of FIG. 2 includes a processor 130 thatimplements or oversees one or more process control routines 138 (e.g.,that are stored in a memory 132). The processor 130 is configured tocommunicate with the field devices 115-122 and 140-146 and with othernodes that are communicatively connected to the controller 111. Itshould be noted that any control routines or modules described hereinmay have parts thereof implemented or executed by different controllersor other devices if so desired. Likewise, the control routines ormodules 138 described herein which are to be implemented within theprocess control system 100 may take any form, including software,firmware, hardware, etc. Control routines may be implemented in anydesired software format, such as using object oriented programming,ladder logic, sequential function charts, function block diagrams, orusing any other software programming language or design paradigm. Thecontrol routines 138 may be stored in any desired type of memory 132,such as random access memory (RAM), or read only memory (ROM) Likewise,the control routines 138 may be hard-coded into, for example, one ormore EPROMs, EEPROMs, application specific integrated circuits (ASICs),or any other hardware or firmware elements. Thus, the controller 111 maybe configured to implement a control strategy or control routine in anydesired manner.

The controller 111 implements a control strategy using what are commonlyreferred to as function blocks, where each function block is an objector other part (e.g., a subroutine) of an overall control routine andoperates in conjunction with other function blocks (via communicationscalled links) to implement process control loops within the processcontrol system 100. Control based function blocks typically perform oneof an input function, such as that associated with a transmitter, asensor or other process parameter measurement device; a controlfunction, such as that associated with a control routine that performsPID, fuzzy logic, etc. control; or an output function which controls theoperation of some device, such as a valve, to perform some physicalfunction within the process control system 100. Of course, hybrid andother types of function blocks exist. Function blocks may be stored inand executed by the controller 111, which is typically the case whenthese function blocks are used for, or are associated with standard 4-20mA devices and some types of smart field devices such as HART® devices,or may be stored in and implemented by the field devices themselves,which can be the case with FOUNDATION® Fieldbus devices. The controller111 may include one or more control routines 138 that may implement oneor more control loops which are performed by executing one or more ofthe function blocks.

The wired field devices 115-122 may be any types of devices, such assensors, valves, transmitters, positioners, etc., while the I/O cards126 and 128 may be any types of I/O devices conforming to any desiredcommunication or controller protocol. In FIG. 2, the field devices115-118 are standard 4-20 mA devices or HART® devices that communicateover analog lines or combined analog and digital lines to the I/O card126, while the field devices 119-122 are smart devices, such asFOUNDATION® Fieldbus field devices, that communicate over a digital busto the I/O card 128 using a FOUNDATION® Fieldbus communicationsprotocol. In some embodiments, though, at least some of the wired fielddevices 115, 116 and 118-121 and/or at least some of the I/O cards 126,128 additionally or alternatively communicate with the controller 111using the process control data highway 110 and/or by using othersuitable control system protocols (e.g., Profibus, DeviceNet, FoundationFieldbus, ControlNet, Modbus, HART, etc.).

In FIG. 2, the wireless field devices 140-146 communicate via a wirelessprocess control communication network 170 using a wireless protocol,such as the WirelessHART® protocol. Such wireless field devices 140-146may directly communicate with one or more other devices or nodes of thewireless network 170 that are also configured to communicate wirelessly(using the wireless protocol or another wireless protocol, for example).To communicate with other nodes that are not configured to communicatewirelessly, the wireless field devices 140-146 may utilize a wirelessgateway 135 connected to the process control data highway 110 or toanother process control communications network. The wireless gateway 135provides access to various wireless devices 140-158 of the wirelesscommunications network 170. In particular, the wireless gateway 135provides communicative coupling between the wireless devices 140-158,the wired devices 115-128, and/or other nodes or devices of the processcontrol plant 100. For example, the wireless gateway 135 may providecommunicative coupling by using the process control data highway 110and/or by using one or more other communications networks of the processplant 100.

Similar to the wired field devices 115-122, the wireless field devices140-146 of the wireless network 170 perform physical control functionswithin the process plant 100, e.g., opening or closing valves, or takingmeasurements of process parameters. The wireless field devices 140-146,however, are configured to communicate using the wireless protocol ofthe network 170. As such, the wireless field devices 140-146, thewireless gateway 135, and other wireless nodes 152-158 of the wirelessnetwork 170 are producers and consumers of wireless communicationpackets.

In some configurations of the process plant 100, the wireless network170 includes non-wireless devices. For example, in FIG. 2, a fielddevice 148 of FIG. 2 is a legacy 4-20 mA device and a field device 150is a wired HART® device. To communicate within the network 170, thefield devices 148 and 150 are connected to the wireless communicationsnetwork 170 via a respective wireless adaptor 152A, 152B. The wirelessadaptors 152A, 152B support a wireless protocol, such as WirelessHART,and may also support one or more other communication protocols such asFoundation® Fieldbus, PROFIBUS, DeviceNet, etc. Additionally, in someconfigurations, the wireless network 170 includes one or more networkaccess points 155A, 155B, which may be separate physical devices inwired communication with the wireless gateway 135, or may be providedwith the wireless gateway 135 as an integral device. The wirelessnetwork 170 may also include one or more routers 158 to forward packetsfrom one wireless device to another wireless device within the wirelesscommunications network 170. In FIG. 2, the wireless devices 140-146 and152-158 communicate with each other and with the wireless gateway 135over wireless links 160 of the wireless communications network 170,and/or via the process control data highway 110.

In FIG. 2, the process control system 100 includes one or more operatorworkstations 171 that are communicatively connected to the data highway110. Via the operator workstations 171, operators may view and monitorrun-time operations of the process plant 100, as well as take anydiagnostic, corrective, maintenance, and/or other actions that may berequired. At least some of the operator workstations 171 may be locatedat various, protected areas in or near the plant 100, e.g., in aback-end environment of the plant 100, and in some situations, at leastsome of the operator workstations 171 may be remotely located, butnonetheless in communicative connection with the plant 100. Operatorworkstations 171 may be wired or wireless computing devices.

The example process control system 100 is further illustrated asincluding a configuration application 172A and configuration database172B, each of which is also communicatively connected to the datahighway 110. As discussed above, various instances of the configurationapplication 172A may execute on one or more computing devices (notshown) to enable users to create or change process control modulesand/or other types of modules, and download these modules via the datahighway 110 to the controllers 111 and/or other devices of the processcontrol system 100, as well as enable users to create or change operatorinterfaces via which in operator is able to view data and change datasettings within process control routines. The configuration database172B stores the created (e.g., configured) modules and/or operatorinterfaces. Generally, the configuration application 172A andconfiguration database 172B are centralized and have a unitary logicalappearance to the process control system 100, although multipleinstances of the configuration application 172A may executesimultaneously within the process control system 100, and theconfiguration database 172B may be implemented across multiple physicaldata storage devices. Accordingly, the configuration application 172A,configuration database 172B, and user interfaces thereto (not shown)comprise a configuration or development system 172 for control and/ordisplay modules. Typically, but not necessarily, the user interfaces forthe configuration system 172 are different than the operatorworkstations 171, as the user interfaces for the configuration system172 are utilized by configuration and development engineers irrespectiveof whether or not the plant 100 is operating in real-time, whereas theoperator workstations 171 are utilized by operators during real-timeoperations of the process plant 100 (also referred to interchangeablyhere as “run-time” operations of the process plant 100).

The example process control system 100 includes a data historianapplication 173A and data historian database 173B, each of which is alsocommunicatively connected to the data highway 110. The data historianapplication 173A operates to collect some or all of the data providedacross the data highway 110, and to historize or store the data in thehistorian database 173B for long term storage. Similar to theconfiguration application 172A and configuration database 172B, the datahistorian application 173A and historian database 173B are centralizedand have a unitary logical appearance to the process control system 100,although multiple instances of a data historian application 173A mayexecute simultaneously within the process control system 100, and thedata historian 173B may be implemented across multiple physical datastorage devices.

In some configurations, the process control system 100 includes one ormore other wireless access points 174 that communicate with otherdevices using other wireless protocols, such as Wi-Fi or other IEEE802.11 compliant wireless local area network protocols, mobilecommunication protocols such as WiMAX (Worldwide Interoperability forMicrowave Access), LTE (Long Term Evolution) or other ITU-R(International Telecommunication Union Radiocommunication Sector)compatible protocols, short-wavelength radio communications such as nearfield communications (NFC) and Bluetooth, or other wirelesscommunication protocols. Typically, such wireless access points 174allow handheld or other portable computing devices (e.g., user interfacedevices 175) to communicate over a respective wireless process controlcommunication network that is different from the wireless network 170and that supports a different wireless protocol than the wirelessnetwork 170. For example, a wireless or portable user interface device175 may be a mobile workstation or diagnostic test equipment that isutilized by an operator within the process plant 100 (e.g., an instanceof one of the operator workstations 171). In some scenarios, in additionto portable computing devices, one or more process control devices(e.g., controller 111, field devices 115-122, or wireless devices 135,140-158) also communicate using the wireless protocol supported by theaccess points 174.

In some configurations, the process control system 100 includes one ormore gateways 176, 178 to systems that are external to the immediateprocess control system 100. Typically, such systems are customers orsuppliers of information generated or operated on by the process controlsystem 100. For example, the process control plant 100 may include agateway node 176 to communicatively connect the immediate process plant100 with another process plant. Additionally or alternatively, theprocess control plant 100 may include a gateway node 178 tocommunicatively connect the immediate process plant 100 with an externalpublic or private system, such as a laboratory system (e.g., LaboratoryInformation Management System or LIMS), an operator rounds database, amaterials handling system, a maintenance management system, a productinventory control system, a production scheduling system, a weather datasystem, a shipping and handling system, a packaging system, theInternet, another provider's process control system, or other externalsystems.

It is noted that although FIG. 2 only illustrates a single controller111 with a finite number of field devices 115-122 and 140-146, wirelessgateways 35, wireless adaptors 152, access points 155, routers 1158, andwireless process control communications networks 170 included in theexample process plant 100, this is only an illustrative and non-limitingembodiment. Any number of controllers 111 may be included in the processcontrol plant or system 100, and any of the controllers 111 maycommunicate with any number of wired or wireless devices and networks115-122, 140-146, 135, 152, 155, 158 and 170 to control a process in theplant 100.

As shown in FIG. 2, and simultaneously referring to FIG. 1 for clarityof illustration and not for limitation purposes, the process plant 100is communicatively connected to an edge gateway system 102, which may bean embodiment of the edge gateway system 1 of FIG. 1. For example, theprocess plant 100 may communicatively connect to the field-facingcomponent 10 of the edge gateway system 1 via one or more process plantcommunication networks, data networks, and/or links, either directlyand/or via respective gateways of the process plant 100. For instance,the field-facing component 10 of the edge gateway system 1 may becommunicatively connected to the process plant 100 via the networks 110,170, via gateways 135, 176, 178, and/or via other networks, links,and/or gateways associated with the process plant, via which thefield-facing component 10 receives or obtains data generated by variousdata sources 30 associated with the process plant 100.

Generally speaking, the data sources 30 and the networks/links 28 viawhich the edge gateway system 1 obtains process-plant related data maybe at lower levels of the Purdue Model or similar security hierarchy(e.g., Level 0 through Level 2), and may include controllers, fielddevices, I/O cards, and other types of process control devices. Further,it is understood that the set of data sources 30 associated with theprocess plant is not limited to only process control devices thatdirectly generate first-order process data, but may additionally oralternatively include any device or component within and/or associatedwith the process plant 100 that generates process data and/or othertypes of data as a result of the process plant 100 controlling theon-line process. For example, the set of data sources 30 may includemodules, alarms, event historians, batch systems and/or historians,diagnostic devices or components that generate diagnostic data, networkrouting devices or components that transmit information between variouscomponents and/or devices of the process plant 100, an asset managementsystem, a configuration system, an analytics system, mobile devices, andthe like. Indeed, any one or more of the components shown in FIG. 2(e.g., components 111, 115-122, 126, 128, 135, 140-146, 152, 155, 158,160, 170, 171-176, 178) and other components that are not shown in FIG.2 may be a data source 30 that generates process plant-related datawhich may be provided for consumption by one or more external systems 8via the edge gateway system 1, 102.

FIG. 3 illustrates a graphical representation of an example contextualknowledge repository 42, such as the contextual knowledge repository 42described with reference to FIG. 1. The example contextual knowledgerepository 42 stores relationships or connections between processplant-related data and process plant entities, such as controllers,field devices, I/O devices, or any other devices within a process plantwhich perform physical functions to control the process, such as avalve, a tank, a mixer, a pump, a heat exchanger, etc. Process plantentities may include physical or logical elements. As mentioned above,the contextual knowledge repository 42 may be stored at the edge-facingcomponent 12 of the edge gateway system 1 and may include a local copyor duplicate of the process plant-related data generated within theprocess plant 5. In this manner, the edge-facing component 12 mayprovide process plant-related data from the contextual knowledgerepository 42 to external systems 8 which do not have authorized accessto communicate with the process plant 5 in a highly secure manner andwithout impacting the performance of the process plant 5. For example,the edge-facing component 12 may provide process plant-related data fromthe contextual knowledge repository 42 to mobile devices, vehicle headunits, desktop computers, laptop computers, wearable devices, etc.,which are not within the process plant 5 and are not authorized tocommunicate with devices or components that control on-line operation ofthe process plant 5.

In other implementations, the contextual knowledge repository 42 may bestored in a computing device that communicates with devices orcomponents within and/or associated with the process plant 5. Thesedevices or components generate process data/or other types of data as aresult of the process plant 5 controlling the on-line process. In theseimplementations, the process plant-related data is not provided througha unidirectional data diode, and devices which receive processplant-related data from the contextual knowledge repository 42 maycommunicate with the devices or components within and/or associated withthe process plant 5 that generated the process plant-related data tocontrol on-line operation of the process plant 5. In this scenario, onlydevices authorized to interact with process control devices may receiveprocess plant-related data from the contextual knowledge repository 42(e.g., operator workstations, mobile workstations, etc.).

In any event, in FIG. 3, process plant-related data (e.g., processparameter data, product parameter data, configuration data, maintenancedata, event data, historical data, environmental data, analysis datasuch as laboratory measurements. etc.) and process plant entities (e.g.,controllers, field devices, process plants, process plant areas, tanks,pumps, mixers, heat exchangers, reactors, regenerators, control modules,function blocks, process flow modules, etc.) are represented by circlesand relationships or connections between process plant-related dataand/or process plant entities are represented by lines connecting thecircles. For example, a first process plant entity 302 represents theHouston process plant. The first process plant entity 302 is connectedto areas within the process plant (e.g., Plant Area A, Plant Area B)based on the areas being within the Houston process plant. Each area isconnected to devices and/or components within the area, such ascontrollers, field devices, control modules, process plant equipment,etc. More specifically, Plant Area A is connected to CONTROLLER1, CNTLMOD PID1, TANK1, MIXER1, and PUMP1 each of which are located withinPlant Area A or control process plant equipment in Plant Area A. PlantArea B is connected to HEAT EXCHANGER1 and VALVE1 each of which arelocated within Plant Area B. CONTROLLER1 is then connected to CNTL MODPID1 based on CONTROLLER1 executing the control module CNTL MOD PID1.CONTROLLER1 is also connected to TANK1, MIXER1, and PUMP1 based onCONTROLLER1 controlling each of these pieces of process plant equipment.Additionally, CNTL MOD PID1 is connected to TANK1, MIXER1, and PUMP1based on CNTL MOD PID1 being a control module that controls each ofthese pieces of process plant equipment. Further, CNTL MOD PID1 isconnected to PRODUCT OUTPUT1 based on CNTL MOD PID1 causing PRODUCTOUTPUT1 to be generated based on control of TANK1, MIXER1, and PUMP1.PRODUCT OUTPUT1 may be gasoline for example. Moreover, TANK1 and PRODUCTOUTPUT1 are connected to process parameter data and product parameterdata, respectively corresponding to TANK1 and PRODUCT OUTPUT1. Morespecifically, TANK1 is connected to process parameter data representingthe fill level of TANK1, Alarm 1 and Alarm 2 each representing alarmscorresponding to TANK1, and Product In1 which is a product provided asan input into TANK1 (e.g., kerosene). PRODUCT OUTPUT1 is connected toproduct parameter data representing the temperature, volume, density,pressure, and chemical composition of PRODUCT OUTPUT1.

While the contextual knowledge repository 42 stores a small amount ofprocess plant-related data, this is for ease of illustration only. Thecontextual knowledge repository 42 may store indications of any numberof process plant entities and any suitable amount of processplant-related data for each of the process plant entities across severalprocess plants. In this manner, users may be able to receive data frommultiple process plants so that the user may search over multiple sites.In addition to providing the process plant-related data from thecontextual knowledge repository 42 as search results, the processplant-related data may be used for plant commissioning, particularly toresolve ambiguous naming conventions. In any event, the processplant-related data may include several types of disparate data such asconfiguration data, run-time data, maintenance data, analysis data,environmental data such as regulatory reporting data, diagnostic data,economic data for the process plant such as costs of equipment andmaterials, projected values of products produced by the plant, theamount of a product which is produced by the process plant over aparticular time period, projected revenues and profit margins, etc., orany other suitable data related to the process plant.

To generate the contextual knowledge repository 42, the contextualknowledge miner 45 mines the data lake 40 to discover relationshipsbetween various content data stored in the data lake 40, andgenerates/modifies/updates the contextual knowledge repository 42accordingly. For example, the contextual knowledge miner 45 may mine thedata lake 40 to identify additional process parameter data for processparameters corresponding to TANK1. Then the contextual knowledge miner45 may update the contextual knowledge repository 42 to include aconnection between TANK1 and the additional process parameter data. Insome implementations, when a change is made to the plant configurationsuch as a user adding a new control module to the process controlsystem, the user may provide an instruction (e.g., via a user control atthe user interface device) to the contextual knowledge miner 45 toregenerate the contextual knowledge repository 42 with the new plantconfiguration. In some scenarios, the user may provide an instruction tothe contextual knowledge miner 45 to update the contextual knowledgerepository 42 with the new plant configuration by adding only thechanges to the plant configuration to the contextual knowledgerepository 42. In other implementations, the contextual knowledge miner45 may automatically analyze updates to the contextual knowledgerepository 42 for example, when downloads to the on-line process plantoccur, and determine whether to update the existing contextual knowledgerepository 42 with changes to the plant configuration, or for example,if the changes are structural in nature, to regenerate the contextualknowledge repository 42 with the new plant configuration. The contextualknowledge repository 42 may also store time data regarding when plantconfiguration changes were added. For example, when a new or updatedcontrol module is downloaded to the on-line process plant, thecontextual knowledge repository 42 may include the date and time of thedownload. Accordingly, a contextual record of the plant state when eachplant configuration change occurs may be maintained based on thecontextual knowledge repository 42. While the contextual knowledgerepository 42 is depicted as a graph structure this is merely anexemplary embodiment and the entities in the contextual knowledgerepository 42 may be connected in any suitable manner.

Process Plant Search Queries

As mentioned above, access mechanisms 48 within the edge-facingcomponent 12 may provide process plant-related data to external systems8. One example of an access mechanism may be a process plant searchquery server which obtains process plant search queries from externalsystems 8, such as user interface devices external to the process plant5 (e.g., mobile devices, desktop computers, laptop computers, wearabledevices, vehicle head units, etc.). The process plant search queryserver then obtains process plant-related data relevant to a processplant search query from the contextual knowledge repository 42 andgenerates process plant search results based on the obtained processplant-related data. More generally, the process plant search queryserver may obtain a request for process plant-related data from anapplication or other computing device, obtain at least some of theprocess plant-related data from the contextual knowledge repository 42in response to the request, and provide the obtained processplant-related data to the application or other computing device. In someimplementations, the request is a process plant search query, and theprocess plant search query server provides a subset of the processplanted-related data to the application or other computing device assearch results in response to the process plant search query.

FIG. 4 illustrates a block diagram of example process plant search queryserver 400. The process plant search query server 400 server may beimplemented as hardware having a processor 402, a memory 404 thatexecutes a process plant search engine 406, and a communication unit forcommunicating with external systems 8 via one or more externalcommunications networks, data networks, and/or links. The one or moreexternal communications networks, data networks, and/or links mayinclude any number of wired and/or wireless communications networks,data networks, and/or links, and may include any number of privateand/or public networks and/or links. In other implementations, theprocess plant search query server 400 server may be implemented assoftware for executing the process plant search engine 406 on thehardware of the edge-facing component 12.

In some implementations, the process plant search query server 400 is anaccess mechanism 48 of the edge-facing component 12. In theseimplementations, the process plant search query server 400 obtainsprocess plant-related data from the contextual knowledge repository 42which is a local copy or duplicate of the process plant-related datagenerated within the process plant 5. Accordingly, the process plantsearch query server 400 does not directly interact with the processplant-related data generated within the process plant 5, and cannotcommunicate with controllers and/or other devices in the process plant 5to control on-line operation of the process plant 5. In otherimplementations, the process plant search query server 400 is not partof the edge-facing component 12 and is a server device communicativelycoupled to the process plant 5 and configured to communicate withcontrollers and/or other devices in the process plant 5 to controlon-line operation of the process plant 5.

In any event, the process plant search engine 406 receives a processplant search query from a user interface device. The process plantsearch query may be any search query related to a process plant-relateddata and/or related to process plant entities within the process plant.For example, the process plant search query may be, “How is my catcracker doing?” The process plant search engine 406 then analyzes/parsesthe process plant search query to identify the subject of the searchquery, context for the search query, and/or other information in thesearch query which may be used to filter a data set responsive to thesearch query. More specifically, the process plant search engine 406 mayobtain indications of subjects and filters from a grammar module orplant vocabulary database included in the process plant search queryserver 400 or communicatively coupled to the process plant search queryserver 400. The grammar module or plant vocabulary database may storeseveral subjects of process plant search queries and filters whichmodify the subjects to filter the search results. The grammar module orplant vocabulary database may also store several mappings of terms fromprocess plant search queries which correspond to each subject and/orfilter, such as synonyms or nicknames for the subject or filter. Forexample, for the subject “MODULE: CATCR,” the grammar or plantvocabulary may store the corresponding terms, “cat cracker,” “catcracker module,” “cat cracker control module,” “catalytic crackingmodule,” “fluid catalytic cracking module,” etc.

The process plant search engine 406 may also identify that the processplant search query was provided in a natural language format, forexample, based on terms such as “how is” and “my.” As a result, theprocess plant search engine 406 recognizes the conversational nature ofthe process plant search query which may be used as context forfollow-up queries by the user. For example, because the process plantsearch engine 406 recognizes the process plant search query asconversational, if the user provides an additional process plant searchquery, such as, “What is the efficiency?” the process plant searchengine 406 identifies based on the context, that the additional processplant search query is for the efficiency regarding the cat cracker andnot another module. In response to identifying a natural language formatof a process plant search query, the process plant search engine 406uses the process plant search query as context for additional processplant search queries by the user within a threshold time period of theprocess plant search query (e.g., five minutes, ten minutes, an hour,etc.).

The process plant search engine 406 may then match each of the terms inthe process plant search query to one of the subjects or filters. Insome implementations, the process plant search engine 406 firstidentifies one or more terms within the process plant search query whichcorrespond to the subject of the process plant search query. Then theprocess plant search engine 406 identifies filters which correspond tothe remaining terms as well as context which may be used to filter thedata set further. The process plant search engine 406 may identify anexact match of one or more terms in the process plant search query to asubject included in the grammar module or plant vocabulary database.

In other implementations, the process plant search engine 406 identifiesa likelihood that one or more terms in the process plant search querycorrespond to a subject from several candidate process plant searchquery subjects included in the grammar module or plant vocabularydatabase. Then the process plant search engine 406 identifies thesubject and corresponding terms having the highest likelihood. Forexample, the process plant search engine 406 may compare a first term inthe process plant search query to each of the candidate process plantsearch query subjects in the grammar module or plant vocabulary databaseand identify likelihoods that the first term corresponds to each of thecandidate process plant search query subjects. Then the process plantsearch engine 406 may compare a first and second term in the processplant search query to each of the candidate process plant search querysubjects in the grammar module or plant vocabulary database and identifylikelihoods that the first and second term correspond to each of thecandidate process plant search query subjects. The process plant searchengine 406 may also compare the second term alone to each of thesubjects in the grammar module or plant vocabulary database and identifylikelihoods that the second term corresponds to each of the candidateprocess plant search query subjects.

The process plant search engine 406 may continue to compare each of theterms alone and in combination to identify a set of one or more termshaving the highest likelihood of corresponding to one of the candidateprocess plant search query subjects in the grammar module or plantvocabulary database. As shown in FIG. 4, the process plant search engine406 identifies the terms “cat cracker” as corresponding to the subject“MODULE: CATCR.”

The process plant search engine 406 then identifies filters from thegrammar module or plant vocabulary database which correspond to theremaining terms. The filters may be used to filter the data set obtainedin response to the identified subject. In this example, the processplant search engine 406 may obtain a set of process plant-related dataincluded in the contextual knowledge repository 42 having connections toMODULE:CATCR. The filters may be used to remove process plant-relateddata from the set. As with the subject, the process plant search engine406 may identify an exact match of one or more remaining terms in theprocess plant search query to a filter included in the grammar module orplant vocabulary database. In other implementations, the process plantsearch engine 406 identifies a likelihood that one or more remainingterms in the process plant search query correspond to a filter includedin the grammar module or plant vocabulary database. Then the processplant search engine 406 identifies the filter and correspondingremaining terms having the highest likelihood or a likelihood above alikelihood threshold.

The process plant search query may include several filters each having adifferent set of one or more remaining terms with a likelihood ofcorresponding to the filter above a likelihood threshold. As shown inFIG. 4, the process plant search engine 406 identifies the term “my” ascorresponding to the filter “SCOPE: USER.” The filter “SCOPE:USER” maybe used to filter the set of process plant-related data such that onlyprocess plant-related data corresponding to one particular MODULE:CATCRof several entities named MODULE:CATCR in the contextual knowledgerepository 42 remains. The particular MODULE:CATCR is the MODULE:CATCRthat the user operates, maintains, is responsible for, etc., accordingto the context, as described in more detail below. The process plantsearch engine 406 identifies the term “how is” as corresponding to thefilter “ALL_ABNORMAL.” The filter “ALL_ABNORMAL” may be used to filterthe set of process plant-related data such that only processplant-related data indicating an abnormal condition and corresponding tothe one particular MODULE:CATCR remains.

As shown in FIG. 4, the example process plant-related data correspondingto the particular MODULE:CATCR that the user operates, maintains, isresponsible for, etc., includes a slurry level of 20%, a reactortemperature of 500°, a reactor pressure of 1.5 bars, a regeneratortemperature of 200° , and a regenerator pressure of 2 bars. The slurrylevel in the contextual knowledge repository 42 may include a connectionto an abnormal condition for example based on the slurry level beingbelow a threshold slurry level. Accordingly, the process plant searchengine 406 may filter the reactor temperature, reactor pressure,regenerator temperature, and regenerator pressure from the set ofprocess plant-related data such that only the slurry level remains.

In addition to identifying subjects and filters for the process plantsearch query, the process plant search engine 406 identifies context.The context may include user information for the user submitting theprocess plant search query, such as the name of the user, the name andlocation of the process plant where the user works, the organizationalrole of the user within the process plant, preferences for the user, asearch history of previous search queries for the user, etc. The processplant search engine 406 may obtain the user information from a userprofile for the user included in a user database, for example. The usermay provide login information which may be used by the process plantsearch engine 406 to access the user information. Additionally, thecontext may include device information for the device in which the usersubmits the process plant search query, such as the location of thedevice which may include a location within a process plant or may be anexternal location, the capabilities of the device (e.g., audio, display,microphone, applications executing on the device, etc.), the type of thedevice, the size of the device, etc. The location of the device mayallow for location-based process plant search queries, such as “Identifythe valve in front of me.” Moreover, the context may include the time inwhich the process plant search query is submitted.

The process plant search engine 406 may further filter the set ofprocess plant-related data according to the context. For example, asdescribed above one of the filters corresponding to the process plantsearch query is “SCOPE:USER.” Based on the name and location of theprocess plant where the user works and the organizational role of theuser within the process plant, the process plant search engine 406 mayidentify the MODULE:CATCR of several instances of MODULE:CATCR in thecontextual knowledge repository 42 that the user operates, maintains, isresponsible for, etc. For example, the context may indicate that theuser works in Area 1 of the Houston plant which has one MODULE:CATCR.Accordingly, the process plant search engine 406 may filter the data setto include only process plant-related data corresponding to theMODULE:CATCR which is in Area 1 of the Houston plant. In otherimplementations, the user may include the name or location of theprocess plant in the process plant search query. The process plantsearch engine 406 may then use the name or location of the process plantas context for further process plant search queries by the user withinthe same conversation, such as within threshold time period, or for anysubsequent process plant search queries by the user. The device contextmay be used to determine the number of search results for the processplant search engine 406 to return. For example, if the device is adesktop computer, laptop computer, operator workstation, etc., theprocess plant search engine 406 may return a full set of search results.If the device is a mobile device or vehicle head unit, the process plantsearch engine 406 may reduce the number of search results to one or someother threshold number.

In any event, the process plant search engine 406 transforms thefiltered process plant-related data into process plant search results.In the example described above, the filtered process plant-related dataincludes a slurry level of 20% for the MODULE:CATCR in Area 1 of theHouston plant. Accordingly, the process plant search engine 406 maygenerate a search result as an audio response (e.g., via a text tospeech engine) or a text response in a natural language format, such as“Your slurry level is low.” The process plant search engine 406 maytransform a subset of the filtered process plant-related data into aprocess plant search result by obtaining an introductory statement, suchas “Good morning,” “Good afternoon,” “Happy Holiday!” etc., from thegrammar module or plant vocabulary based on the time of day/year and/orthe user's name. The process plant search engine 406 may also obtain anatural language response to the process plant search query from thegrammar module or plant vocabulary, such as “Your slurry level is . . .” “Abnormal conditions in your cat cracker include . . . ” “Your catcracker is performing well! A few things to watch out for are . . . ” Inother implementations, the process plant search engine 406 may generatea search result as a link to a process flow module or control module forthe MODULE:CATCR in Area 1 of the Houston plant which may highlight theslurry level, or a link to detailed information regarding the slurrylevel. In this example, the process plant search engine 406 returns asingle process plant search result. However, this is merely one examplescenario. In other scenarios, the process plant search engine 406 mayreturn any number of process plant search results corresponding to anyamount of process plant-related data responsive to the process plantsearch query.

While “How is my cat cracker doing?” is one example of a process plantsearch query, the process plant search query server 400 may obtain anysuitable process plant search query and generate process plant searchresults. Other example process plant search queries may include queriesregarding a particular mode of operation, queries regarding abnormalconditions or a particular abnormal condition, queries for modules in aspecified portion of a module hierarchy, queries for process parametershaving a particular name and/or value, queries for modules with alarmsor alarms having a particular priority, queries regarding a particularprocess plant entity or group of process plant entities, queriesregarding a product produced by process plant entities, queriesregarding events within the process plant, queries regardingconfiguration data such as queries regarding instances of classes, orany other suitable queries related to the process plant.

Additionally, in some implementations, the user may allow for theprocess plant search query server 400 to provide unsolicited voice ordisplay information regarding the process plant to the user's userinterface device (e.g., by selecting a user control on the userinterface device to receive unsolicited process plant-related data). Theunsolicited voice or display information regarding the process plant mayinclude critical or safety-related alarm information regardless of thecurrent interactions with the user. The process plant search queryserver 400 may identify a set of process plant entities for the user.For example, the set of process plant entities may be identified basedon the user's organizational role or may be selected by the user. Theprocess plant search query server 400 may then periodically (e.g., every30 seconds, every minute, every five minutes, etc.) search thecontextual knowledge repository 42 for critical or safety-related alarminformation related to the identified set of process plant entities.When the process plant search query server 400 identifies critical orsafety-related alarm information related to one of the identified set ofprocess plant entities, the process plant search query server 400provides an indication of the critical or safety-related alarminformation to the user interface device in an audio ortextual/graphical format regardless of whether the user provided processplant search queries regarding the critical or safety-related alarminformation, the set of process plant entities, or provided any processplant search queries at all. For example, the user may provide processplant search queries regarding a boiler unit and distillation column. Inresponse to identifying a critical or safety-related alarm informationrelated to a safety system in an area of the process plant 5 that theuser operates, the process plant search query server 400 may interruptthe process plant search query/process plant search results sequence andinstead provide the critical or safety-related alarm information relatedto the safety system to the user interface device.

Additionally, the user may request voice alerts or notification to beprovided to the user interface device in response to a particular eventor condition occurring within the process plant. The process plantsearch query server 400 may then periodically or continuously determinewhether the particular condition is satisfied or event occurs within theprocess plant 5. When the particular condition is satisfied or eventoccurs, the process plant search query server 400 may provide the voicealert or notification to the user interface device without any furtherrequests or process plant search queries by the user. For example, theuser may want to know when the process variable value for TT-102 risesabove 70%. The process plant search query server 400 may periodically orcontinuously obtain the process variable value for TT-102, for examplefrom the contextual knowledge repository 42. When the process variablevalue exceeds 70%, the process plant search query server 400 may providea voice alert to the user interface device that the process variablevalue for TT-102 is 71%, for example.

The process plant search query server 400 receives a process plantsearch query from a user interface device which may be within orexternal to the process plant 5. FIG. 5 illustrates an example processplant display 500 which may be presented on the user interface device.The user interface device may be communicatively coupled to the processplant 5, such that the user may control devices or components within theprocess plant 5 via user controls on the process plant display 500. Inother implementations, the user interface device is not communicativelycoupled to the process plant 5 and the data presented on the processplant display 500 is from a local copy or duplicate of the processplant-related data within the process plant 5. In any event, the processplant display 500 may include a user control 502 such as a search icon,which when selected causes the process plant display 500 to present asearch bar 504 for entering process plant search queries. In someimplementations, the process plant display 500 is presented via aprocess plant application or process plant search application executingon the user interface device. The user may enter the process plantsearch query via text input or audio input via a microphone, such as“control modules with bypass not on.” The process plant search query maybe related to the graphical information presented in the process plantdisplay 500, such as a control module, faceplate, process flow module,process plant entities, etc. In some implementations, the user interfacedevice may provide an indication of the control module, process flowmodule, faceplate, process plant entities, etc., included in the processplant display 500 to the process plant search query server 400 ascontext for the process plant search query. In other scenarios, theprocess plant search query is not related to the graphical informationpresented in the process plant display 500.

The process plant application or process plant search application maystore previous process plant search queries entered by the user and mayinclude user controls for the user to select one of the previous processplant search queries without having to repeat the text or audio input.In some implementations, the process plant application or process plantsearch application may automatically resubmit previous process plantsearch queries periodically or in any suitable manner to receive updatedsearch results.

The process plant search query server 400 then receives the processplant search query as well as context for the process plant searchquery, such as user information, device information, a search history ofprevious search queries for the user, indications of graphicalinformation presented on the process plant-related data when the processplant search query is submitted, etc. The process plant search queryserver 400 may then identify the subject of the process plant searchquery, “control modules with bypass not on” as CRTLMOD from the terms“control modules” in the process plant search query, and may identify afilter as BYPASS:is_not:On from the terms “bypass not on.” In someimplementations, the process plant search query server 400 may identifyadditional filters from the context, such as control modules within aparticular process plant in which the user operates, maintains, isresponsible for, etc., a particular area of the process plant in whichthe user operates, maintains, is responsible for, etc., a particulararea of the process plant in which the user previously inquired about,or a particular area of the process plant currently presented on theuser's process plant display 500. In any event, the process plant searchquery server 400 then identifies each of the control modules with bypassnot on from the contextual knowledge repository 42 as well as processplant-related data for each of the identified control modules. Theprocess plant search query server 400 generates a process plant searchresult for each identified control module/process plant-related data forthe control module and provides the process plant search results fordisplay on the user interface in a search results display. An exampleprocess plant search results display 600 which may be presented on theuser interface device is illustrated in FIG. 6.

The process plant search results display 600 includes indications of aset of process plant search results 602 a-608 a in response to theprocess plant search query, “control modules with bypass not on.” Eachindication of a process plant search result 602 a-608 a may include aname of the process plant search result (e.g., Workshop_1303) with alink to detailed information regarding the process plant search result.Additionally, each indication of a process plant search result 602 a-608a may include a thumbnail image or preview 602 b-608 b of the detailedinformation regarding the process plant search result. For example, thefirst process plant search result 602 a, Workshop_1303, is a controlmodule and the thumbnail image or preview corresponding to the firstprocess plant search result 602 b is a thumbnail image of a graphicalrepresentation of the control module. When the user selects the firstprocess plant search result 602 a (e.g., by clicking on ortouch-selecting the indication of the first process plant search result602 a or the thumbnail or preview corresponding to the first processplant search result 602 b), the user interface device may present acomplete view of the graphical representation of the control module in adetailed search result display 700 as shown in FIG. 7.

The detailed search result display 700 may also include otherinformation about the control module, such as the name of the controlmodule, the path of the control module, the names and/or paths of inputsand outputs to the control module, the names and/or paths of processplant entities controlled by the control module, the name and/or path ofthe controller executing the control module, product parameter data forproducts input and/or output by the control module, process parameterdata for process plant entities controlled by the control module, or anyother suitable information regarding the control module. As describedabove, when the user interface device is external to the process plant 5and/or is unauthorized to communicate with devices or components thatcontrol on-line operation of the process plant 5, the selectable link todetailed information is a selectable link to a local copy or duplicateof the process plant-related data within the process plant 5, such thatuser interactions with the duplicate of the process plant-related datado not effect run-time operation of the process plant 5.

In some implementations, the detailed search result display 700 mayinclude a video feed, such a live video feed of a process plant entityor process plant area corresponding to the search result. For example,if the search result is an alarm for a particular process plant entity,the detailed search result display 700 may include a live video feed ofthe process plant entity (e.g., a mixer). In another example, if thesearch result is a summary of an area of the process plant, the detailedsearch result display 700 may include a live video feed of the processplant area. Still further, the detailed search result display 700 mayinclude faceplates, detail and primary control displays, controlhierarchies, process flow modules, images/video of the process plant,images/video of an area of the process plant, displays of process plantentities, map representation of a process plant or area of a processplant, graphs, charts or tables for a process parameter or productparameter value, configuration displays, alarm displays, etc.

Turning back to FIG. 6, the process plant search query server 400 mayselect the number of process plant search results to include in theprocess plant search results display 600 based on the size and/or typeof the user interface device. If the size of the user interface deviceis less than a threshold size or the device type is a particular type ofa predetermined set of device types (e.g., a mobile device, a vehiclehead unit, etc.), the process plant search query server 400 may providea single process plant search result to include in the process plantsearch results display 600.

FIG. 8 illustrates a process plant search results display 800 for amobile device having a single process plant search result. On the otherhand, if the size of the user interface device is not less than thethreshold size or the device type one of a predetermined set of devicetypes, the process plant search query server 400 may provide a set ofprocess plant search results to include in the process plant searchresults display 600. In other implementations, the process plant searchquery server 400 selects a number of process plant search results toinclude in the process plant search results display 600 which is inproportion to the size of the user interface device. For example, theprocess plant search query server 400 may provide 10 process plantsearch results to include in the process plant search results display600 when the user interface device is above a first threshold size butless than a second threshold size. The process plant search query server400 may provide 20 process plant search results to include in theprocess plant search results display 600 when the user interface deviceis above a second threshold size but less than a third threshold size,and so on. In yet other implementations, the process plant searchresults display 600 includes a first set of process plant search resultson a first page, and additional sets of process plant search results onsubsequent pages which the user may access via user controls on theprocess plant search results display 600, such as back and forwardarrows.

In other implementations, the process plant search query server 400provides the set of process plant search results to the user interfacedevice, and the user interface device adjusts the presentation of theset of process plant search results based on the size and/or type of theuser interface device. For example, if the user interface device is amobile device or vehicle head unit, the user interface device may selecta single search result of the set of process plant search results topresent in the process plant search results display 600. If the userinterface device is a desktop computer or has a size at or above athreshold size, the user interface device may present each of the set ofprocess plant search results in the process plant search results display600.

In some implementations, the process plant search query server 400 mayselect the format in which to provide the process plant search resultsbased on the capabilities of the user interface device. If the userinterface device has audio capabilities but does not have a display, theprocess plant search query server 400 may provide the process plantsearch results to the user interface device in an audio format. If theuser interface device has a display but does not have audiocapabilities, the process plant search query server 400 may provide theprocess plant search results to the user interface device in atext/graphical format. If the user interface device has a display andaudio capabilities, the process plant search query server 400 mayprovide the process plant search results to the user interface device inboth a text/graphical format and an audio format.

The process plant search results display 600 may also includeindications of categories 610-650 for obtaining process plant searchresults that correspond to a particular category. In the example processplant search results display 600, the categories include: All 610,Alarms 620, Control Modules 630, Process Flow Modules 640, and Reports650. In the example process plant search results display 600, the Allcategory 610 is selected and accordingly the process plant searchresults being presented include process plant search results for all ofthe categories. In response to a selection by the user of one of theother categories 620-650, the process plant search results display 600may present process plant search results responsive to the process plantsearch query which correspond to the selected category. For example, ifthe user selects the category Reports 650, the process plant searchresults display 600 may present a subset of the process plant searchresults which include a report or are related to a report, such as areport regarding one of the control modules with bypass not on.

In some implementations, the process plant search query server 400generates each of the categories and assigns subsets of the processplant search results to each category. The process plant search queryserver 400 may assign a particular process plant search result to acategory based on the process plant-related data included in the processplant search result and/or based on connections from the processplant-related data to other process plant-related data or process plantentities in the contextual knowledge repository 42. For example, if aparticular control module in the contextual knowledge repository 42 hasconnections with alarms, the process plant search query server 400 mayassign the control module to the Alarms category 620.

In some implementations, the categories may be independent of theprocess plant search query and may be the same categories for anyprocess plant search query. In other implementations, the process plantsearch query server 400 generates a set of categories specific to eachprocess plant search query based on the set of process plant searchresults responsive to the process plant search query. For example, forthe process plant search query, “control modules with bypass not on,”the process plant search query server 400 may determine that the set ofsearch results include control modules in three different area of aprocess plant. Accordingly, the process plant search query server 400may generate a different category for each area of the process plant,and assign a subset of the process plant search results to eachcategory.

Also in some implementations, the process plant search query server 400may rank and/or score each of the process plant search results. Theprocess plant search results 602 a-608 a may then be presented in aranked order in the process plant search results display 600. Forexample, the process plant search result 602 a ranked the highest orhaving the highest score may be presented at the top of the processplant search results display 600. When the process plant search queryserver 400 selects a single process plant search result to include inthe process plant search results display 600, the process plant searchquery server 400 may select the highest ranking process plant searchresult. In another example, when the process plant search query server400 selects a threshold number of process plant search results toinclude in the process plant search results display 600 (e.g., five),the process plant search query server 400 may select process plantsearch results ranked at or above the threshold number.

The process plant search query server 400 may assign relevance scores toeach of the process plant search results according to relevance to theprocess plant search query. The relevance to the process plant searchquery may be based on how closely a process plant search resultcorresponds to the process plant search query. In some implementations,the process plant search query server 400 may assign relevance scoresaccording to importance or priority for each of the process plant searchresults. For example, for a process plant search query having alarms asthe subject, the process plant search query server 400 may determinethat high priority or critical alarms have higher relevance to theprocess plant search query than low priority alarms. Accordingly, theprocess plant search query server 400 may assign higher scores toprocess plant search results corresponding to high priority or criticalalarms and lower scores to process plant search results corresponding tolow priority alarms.

Also in some implementations, such as for example, if one of the filtersis a time period (e.g., alarms within the previous eight hours), theprocess plant search query server 400 may assign relevance scores basedon recency. The process plant search query server 400 may assign higherscores to process plant search results corresponding to events thathappened more recently. More specifically, the process plant searchquery server 400 may assign a higher relevance score to a search resultcorresponding to an alarm which triggered one hour before the processplant search query than to a search result corresponding to an alarmwhich triggered six hours before the process plant search query.

The process plant search query server 400 may also assign relevancescores based on the context. More specifically, if the process plantsearch query is “modules on boiler unit” for example, and the user'sorganizational role within the process plant indicates that the userworks closely with one particular boiler unit, then the process plantsearch query server 400 may assign higher relevance scores to modulesfor that one particular boiler unit than for modules corresponding toother boiler units.

Still further, the process plant search query server 400 may assignrelevance scores to each process plant search result based on the numberor proportion of filters having conditions that the process plant searchresult satisfies. For example, if the process plant search queryincludes three filters, process plant search results which satisfy theconditions for all three of the filters may be assigned higher relevancescores than process plant search results which satisfy only two of thethree filters. In some implementations, the process plant search queryserver 400 only generates process plant search results which satisfy theconditions of each of the filters in the process plant search query. Inother implementations, the process plant search query server 400generates process plant search results which satisfy the conditions ofat least a threshold number or percentage of the filters in the processplant search query. For example, if the process plant search queryserver 400 determines that 10 process plant search results may beprovided for display according to the device type or size of the userinterface device and only five process plant search results satisfy theconditions of each of the filters, the process plant search query server400 may identify additional process plant search results that do notsatisfy the conditions of one of the filters. These additional processplant search results may be assigned lower relevance scores than theprocess plant search results that satisfy the conditions of each of thefilters.

In some implementations, the process plant search query server 400assigns relevance scores to each of the process plant search resultsbased on any suitable combination of importance, recency, context, thenumber of filters having conditions that a process plant search resultsatisfies, or any other suitable factor related to relevancy. Theprocess plant search query server 400 may then rank the process plantsearch results in order of the relevance scores with the process plantsearch result having the highest relevance score ranked the highest.

In some implementations, the rankings may also be used to resolveambiguous process plant search queries and/or provide recommendations orfollow-up questions to the user regarding the process plant searchquery. For example, the user may provide a process plant search queryregarding TT102. While the process plant search query server 400 may notbe able to identify TT102 in the contextual knowledge repository 42, thehighest ranking process plant search result may be for TC102.Accordingly, the process plant search query server 400 may provide arecommendation to the user to generate a process plant search query forTC 102, or may ask the user whether the process plant query was meant tobe for TC 102. When the process plant search query server 400 receivesan ambiguous process plant search query or is unable to identify thesubject of the process plant search query, the process plant searchquery server 400 may identify the closest match or subject and mayprovide the closest match or subject to the user as arecommendation/corrective action.

Presentation of Process Plant-Related Data

In addition to providing process plant search results in response toprocess plant search queries, the contextual knowledge repository 42 maybe used to provide process plant-related data to be presented by userinterface devices which are not communicatively coupled to the processplant, such as mobile devices, vehicle head units, laptop computers,desktop computers, etc. In this manner, process plant personnel mayremotely monitor on-line operation of the process plant without thesecurity and safety risks of remotely communicating with devices withinthe process plant 5.

As mentioned above, in this implementation, the contextual knowledgerepository 42 is included in an edge-facing component 12 of the edgegateway system 1. The edge-facing component 12 is connected to afield-facing component 12 of the edge gateway system via aunidirectional data diode 15 which obtains data from data sources 30within the process plant 5, but does not allow for communication fromthe edge-facing component 12 to the field-facing component 10 and intothe process plant 5. Accordingly, in this implementation, the processplant-related data included in the contextual knowledge repository 42 isfrom a local copy or a duplicate of the process plant-related datawithin the process plant 5, such that changes to the duplicate of theprocess plant-related data presented on a user interface device do notalter the run-time operation of the process plant 5. The user interfacedevices do not directly interact with the process plant-related datagenerated within the process plant 5, and cannot communicate withcontrollers and/or other devices in the process plant 5 to controlon-line operation of the process plant 5. In this manner, users mayremotely view process flow modules, control modules, faceplates, processplant entities, process parameter data, product parameter data,environmental data, maintenance data, analysis data, diagnostic data,etc., as if they were at their operator workstations, mobileworkstations, or any other suitable user interface device within theprocess plant 5.

The process plant search query server 400 or any other suitable accessmechanism 48 within the edge-facing component 12 may provide the processplant-related data to an application or other computing device inresponse to a request from the application or other computing device.For example, a user interface device may execute a process plantapplication that requests process plant-related data from the contextualknowledge repository 42 via an access mechanism 48 such as the processplant search query server 400. The process plant application may alsoobtain user identification information for the user such as user logininformation, and may provide the user identification information anddevice information to the edge-facing component 12 for context, so thatthe edge-facing component 12 provides a subset of the processplant-related data which is related to the organizational role of theuser, for example. The subset of the process plant-related data may alsobe related to the process plant where the user is employed, such as theCorpus Christi plant.

FIG. 9 illustrates an example vehicle head unit 900 for presentingprocess plant-related data at a remote location from the process plant5. The vehicle head unit 900 may execute a process plant application andmay include a display 902 and speakers for providing graphical and audiooutput, hardware input controls for entering alphanumeric characters orproviding other user input, software input controls for enteringalphanumeric characters or providing other user input via atouch-screen, and/or a microphone for receiving audio input, such as aprocess plant search query. As shown in FIG. 9, the display 902 includesa prompt requesting the user to provide a request related to the processplant, such as a process plant search query. Accordingly, the user mayprovide an audio request with voice input via the microphone or mayprovide a text request via the hardware or software input controls. Insome implementations, the process plant application may include apre-stored voice prompt which causes the process plant application toreceive and analyze the user's voice input via the microphone. Forexample, the pre-stored voice prompt may be “Hey, DeltaV.” In responseto receiving the voice input, “Hey, DeltaV,” the process plantapplication may receive and analyze subsequent voice input from the userto generate process-plant data in a response to the user's request. Theprocess plant application may also identify the user's voice via voicerecognition techniques, such that only the user can provide voice inputto the process plant application. Voice input from other users may notbe analyzed since the process plant application would not identify thevoice input as corresponding to the user. In other implementations, thedisplay 902 may include default process-plant related data correspondingto the user or a process plant display of a process flow module orcontrol module corresponding to the user, as shown in FIGS. 10 and 11respectively, and described in more detail below. For example, thedefault process-plant related data may include reports generated for theuser within a particular time period regarding process plant entitiesrelated to the user's organizational role, updates on process plantentities that the user operates, maintains, is responsible for, etc.,alarms or critical information for these process plant entities, etc.The default process flow module or control module corresponding to theuser may include a process flow module or control module that the usermost recently viewed, or a process flow module or control module thatincludes process plant entities related to the user's organization role,such as process plant entities that the user operates, maintains, isresponsible for, etc.

In an example scenario, in response to the prompt included on thedisplay 902, the user provides the voice input, “Hey, DeltaV. Present myreports,” or “Hey, DeltaV. Give me my divided wall column report.” Inresponse to the voice input, the vehicle head unit presents a processplant report display 1000 as shown in FIG. 10. In some implementations,the process plant report display 1000 may be presented as defaultprocess-plant related data without a request from the user. Morespecifically, the edge-facing component 12 may periodically generatereports for the user specific to the user's organizational role. Theuser may also be able to customize the reports via user controls on thevehicle head unit 900 to select particular control modules, processplant entities, process plant areas, etc., for which to receive reports.In any event, the process plant report display 1000 may include anindication of unread reports 1002 and read reports. Each indication ofan unread report 1002 may include the title of the report and a link forselecting the report to view the report or to receive an audio versionof the report. For example, the user may touch-select the audio controlcorresponding to the Executive Summary to receive an audio version ofthe Executive Summary or the user may touch-select the Executive Summaryto receive a graphical version of the Executive Summary. In the examplescenario, the user provides the voice input, “Hey, DeltaV. Present myreports,” or “Hey, DeltaV. Give me my divided wall column report,” toreceive graphical and/or audio versions of the divided wall columnreport. In response, the vehicle head unit 900 presents an audio versionof the divided wall column report 1004 such as, “Yesterday's DividedWall Column report indicates that it ran near capacity with a productionof 100K barrels. There were 2 Critical alarms. There were no knownenvironmental excursions.” The audio version may be presented in anatural language format. For example, the edge-facing component 12 maycommunicate with the grammar module or plant vocabulary databasedescribed above to generate the audio version in the natural languageformat.

The vehicle head unit 900 may also present a graphical version of thedivided wall column report (not shown) on the display 902. The graphicalversion of the divided wall column report may include a graphicalrepresentation of the divided wall column as well as the inputs andoutputs to the divided wall column. The graphical version may alsoinclude process parameter data for the divided wall column and/orproduct parameter data for the products input and output into/from thedivided wall column. Furthermore, the graphical version of the dividedwall column report may include text transcribed from the audio version.

In some implementations, the process plant application or theedge-facing component 12 may generate multiple versions of the reports,such as a condensed version and a complete version for each report. Thecondensed version may include a summary of the information included inthe complete version. The process plant application may communicate withsensors in the vehicle head unit 900 to determine the speed of thevehicle. If the vehicle is traveling at a speed above a threshold speed(e.g., 10 mph), the process plant application may present the condensedversion of the report in an audio format via the speaker and/or thedisplay 902 to reduce driver distraction. On the other hand, if thevehicle is traveling at or below the threshold speed (e.g., 10 mph), theprocess plant application may present the complete version of the reportvia the speaker and/or the display 902. Additionally, the process plantapplication may present condensed versions of process flow modules,control modules, faceplates, process plant entities, etc., in responseto determining that the vehicle is travelling above a threshold speed.More specifically, a condensed version of a process flow module may notinclude some of the process parameter data, process plant entities,alarms, etc., included in the complete version of the process flowmodule.

An example process plant display 1100 presented on the vehicle head unit900 and including a process flow module 1102 is illustrated in FIG. 11.The process flow module 1102 may be the complete version, while acondensed version may not include some of the process parameter data,process plant entities, alarms, warnings, etc., included in the completeversion. The process flow module 1102 may include real-time processplant-related data from the on-line process plant 5, such as real-timeprocess parameter data. While the user cannot remotely adjust set pointvalues for example, because the process plant application on the vehiclehead unit 900 is not communicatively coupled to the process plant 5, theuser can view set points, process parameter values, events, etc., withinthe on-line process plant 5. In some implementations, the process plantdisplay 1100 is presented in response to a request by the user to viewthe process flow module 1102. In other implementations, the processplant display 1100 is a default display which presents a process flowmodule having process plant-related data which corresponds to the user'sorganizational role or which the user requested to view previously.

In addition to presenting process plant-related data in response torequests by the user or as default data, the process plant applicationexecuting on the vehicle head unit 900 may obtain and presentnotifications when an event occurs at the process plant 5 which may beof interest to the user according to the user's organizational role. Forexample, the edge-facing component 12 may identify control modules,process flow modules, process plant entities, etc., that the useroperates, maintains, is responsible for, etc., according to the user'sorganizational role. In some implementations, the user may input a setof control modules, process flow modules, process plant entities, etc.,to remotely monitor via user controls at the process plant application.When an event is stored in the contextual knowledge repository 42 whichis related to one of the identified control modules, process flowmodules, process plant entities, etc., for the user, the edge-facingcomponent 12 may transmit a notification to the process plantapplication to be presented by the vehicle head unit 900. Thenotification may include a description of the event and a subset of theprocess plant-related data from the contextual knowledge database 42which corresponds to the event. The notification may also include a linkto a detailed description of the event along with a graphical display ofthe process flow module, control module, process plant entity, etc.,associated with the event, process parameter data for the event, alarmsand/or warnings associated with the event, etc.

FIG. 12 illustrates a flow diagram representing an exemplary method 1200for providing search results in response to a process plant searchquery. The method 1200 may be executed by the process plant search queryserver 400 as shown in FIG. 12, the edge-facing component 12 as shown inFIG. 1, or any suitable computing device within the process plant 5 orexternal to the process plant 5 and communicating with the edge-facingcomponent 12.

At block 1202, the process plant search query server 400 receives aprocess plant search query from a user interface device. The processplant search query may be any search query related to a processplant-related data and/or related to process plant entities within theprocess plant. The process plant search query may be a voice-based ortext-based process plant search query. When the process plant searchquery is a voice-based process plant search query, the user interfacedevice may transcribe the voice-based process plant search query to textand transmit the text to the process plant search query server 400. Inother implementations, the user interface device may transmit thevoice-based process plant search query to the process plant search queryserver 400, and the process plant search query server 400 may transcribethe voice-based process plant search query to text.

The process plant search query server 400 then analyzes/parses theprocess plant search query to identify the subject of the search query(block 1204), context for the search query (block 1206), and/or otherinformation in the search query which may be used to filter a data setresponsive to the search query. More specifically, the process plantsearch query server 400 may obtain indications of subjects and filtersfrom a grammar module or plant vocabulary database included in theprocess plant search query server 400 or communicatively coupled to theprocess plant search query server 400. The grammar module or plantvocabulary database may store several subjects of process plant searchqueries and filters which modify the subjects to filter the searchresults. The grammar module or plant vocabulary database may also storeseveral mappings of terms from process plant search queries whichcorrespond to each subject and/or filter, such as synonyms or nicknamesfor the subject or filter.

The process plant search query server 400 may also identify context forthe process plant search query from a user profile for the user includedin a user database, for example. The user may provide login informationwhich may be used by the process plant search query server 400 to accessthe user information. Additionally, the context may include deviceinformation for the device in which the user submits the process plantsearch query, such as the location of the device which may include alocation within a process plant or may be an external location, thecapabilities of the device (e.g., audio, display, microphone,applications executing on the device, etc.), the type of the device, thesize of the device, etc. Moreover, the context may include the time inwhich the process plant search query is submitted.

At block 1208, the process plant search query server 400 obtains a dataset of process plant-related data from the contextual knowledgerepository 42 responsive to the search query which corresponds to thesubject of the process plant search query. The process plant searchquery server 400 may then filter the data set according to the filtersin the process plant search query and/or context associated with theprocess plant search query. For example, the subject of the processplant search query may be alarms. Accordingly, the process plant searchquery server 400 may retrieve a data set of process plant-related datafrom the contextual knowledge repository 42 related to alarms. Thefilters for the process plant search query may be critical alarms,alarms for a particular boiler unit, and alarms that occurred in theprevious eight hours. The process plant search query server 400 may thenfilter the data set to remove process plant-related data which is notrelated to critical alarms, alarms for the particular boiler unit, andalarms that occurred in the previous eight hours.

At block 1210, the process plant search query server 400 may thengenerate a set of process plant search results according to the filtereddata set. The process plant search query server 400 may transform thefiltered data set into process plant search results by generating anatural language response for each data item in the filtered data set.For example, the process plant search query server 400 may transform adata item into a process plant search result by obtaining anintroductory statement, such as “Good morning,” “Good afternoon,” “HappyHoliday!” etc., from the grammar module or plant vocabulary based on thetime of day/year and/or the user's name. The process plant search queryserver 400 may also obtain a natural language response to the processplant search query from the grammar module or plant vocabulary, such as“Critical alarms include . . . ” or “You have critical alarms . . . ”The natural language response may be a predetermined natural languageresponse which is stored in the grammar module or plant vocabularydatabase in association with a particular process plant query subject orwith a particular process plant query subject and one or more filters.For example, each time the process plant query subject is alarms, thepredetermined natural language response may be “You have_alarms . . . ”When one of the filters is critical alarms, the predetermined naturallanguage response may be modified to “You have_critical alarms . . . ”In other implementations, the process plant search query server 400 maygenerate a search result as a link to the data item in the filtered dataset, such as a link to detailed information regarding a control module,as shown in FIG. 6.

Then at block 1212, the process plant search query server 400 providesthe set of process plant search results to the user interface device fordisplay. The set of process plant search results may be provided in atext format and presented graphically on a user interface of the userinterface device or may be provided in an audio format and presented viaa speaker.

FIG. 13 illustrates a flow diagram representing an exemplary method 1300for presenting process plant search results in response to a processplant search query. The method 1300 may be executed by an externalsystem 8 as shown in FIG. 1, such as a user interface device or may beexecuted by a user interface device operating within the process plant5.

At block 1302, the user interface device receives a process plant searchquery from a user. The process plant search query may be any searchquery related to a process plant-related data and/or related to processplant entities within the process plant. Moreover, the process plantsearch query may be provided via text input by selecting a user controlon the user interface device, such as a process plant search bar or viaaudio input. The user interface device may then provide the processplant search query to the process plant search query server 400.Additionally, the user interface device may provide user information,device information, a search history of previous search queries for theuser, indications of graphical information presented on the processplant-related data when the process plant search query is submitted,etc. as context for the process plant search query. The process plantsearch query server 400 then analyzes the process plant search query andthe context and generates a set of process plant search resultsresponsive to the process plant search query.

At block 1304, the user interface device obtains a set of process plantsearch results for example, from the process plant search query server400. In some implementations, the process plant search query server 400also generates a set of process plant categories corresponding to theprocess plant search results, such as all, alarms, control modules,process flow modules, reports, etc. The user interface device obtainsthe set of process plant categories (block 1306) and presentsindications of the process plant categories (block 1308) and a subset ofthe process plant search results that correspond to each process plantcategory (block 1310) in a process plant search results display. Eachprocess plant search result may include a selectable link to detailedinformation regarding the process plant search result. The detailedinformation regarding the process plant search result may includeprocess plant-related data, such as configuration data, run-time data,maintenance data, analysis data, environmental data, diagnostic data,etc. Additionally, each process plant search result may include athumbnail image or preview of the detailed information regarding theprocess plant search result. For example, for a process plant searchresult including a control module, the thumbnail image or previewcorresponding to the process plant search result may be a thumbnailimage of a graphical representation of the control module.

FIG. 14 illustrates a flow diagram representing an exemplary method 1400for presenting process plant-related data within a vehicle head unit.The method 1400 may be executed by the vehicle head unit 900 as shown inFIG. 9.

At block 1402, process plant-related data is received at a process plantapplication executing on the vehicle head unit 900. The processplant-related data may be received in response to a request by a user,may be default process plant-related data, or may be received as anotification in response to an event at the process plant 5 which may berelated to the user's organizational role. At block 1404, the user'sorganizational role may be determined and the process plant applicationmay present a subset of the process plant-related data on the vehiclehead unit 900 according to the user's organizational role (block 1406).

In some implementations, the edge-facing component 12 may generate andprovide the subset of the process plant-related data to the processplant application based on the user's organizational role. The processplanted-related data presented by the vehicle head unit 900 may includereports generated for the user within a particular time period, updateson process plant entities that the user operates, maintains, isresponsible for, etc., alarms or critical information for these processplant entities, a graphical representation of a process flow module orcontrol module that the user most recently viewed, or a process flowmodule or control module that includes process plant entities that theuser operates, maintains, is responsible for, etc.

The process plant-related data may be presented graphically on a userinterface of the vehicle head unit 900 or audibly via a speaker.Additionally, the process plant-related data may be presented in anatural language format.

Embodiments of the techniques described in the present disclosure mayinclude any number of the following aspects, either alone orcombination:

1. A method for providing search results in response to a process plantsearch query, the method comprising: receiving, at a computing device, aprocess plant search query from a user related to one or more processplant entities within a process plant; obtaining, by the computingdevice, a data set responsive to the process plant search query from aknowledge repository in which process plant-related data that describesattributes of the process plant entities is organized according tosemantic relations between the process plant-related data and theprocess plant entities; and providing, by the computing device, a set ofsearch results to the user based on the obtained data set responsive tothe process plant search query.

2. The method of aspect 1, further comprising: analyzing one or moreterms within the process plant search query to identify a subject of theprocess plant search query; obtaining the data set from the knowledgerepository including process plant-related data corresponding to thesubject of the process plant query; analyzing one or more remainingterms within the process plant search query to identify one or morefilters for filtering the data set; filtering the data set according tothe one or more filters; and providing the set of search results to theuser according to the filtered data set.

3. The method of any one of the previous aspects, further comprising:identifying context for the process plant search query; identifying oneor more additional filters for filtering the data set according to thecontext; and filtering the data set according to the one or moreadditional filters.

4. The method of any one of the previous aspects, wherein the contextincludes an organizational role of the user, a location of the user, atime of the process plant search query, or previous process plant searchqueries from the user.

5. The method of any one of the previous aspects, further comprising:ranking the set of search results based on (i) context for the processplant search query or (ii) an amount in which each search resultcorresponds to the one or more remaining terms within the process plantsearch query; and providing the ranked set of search results to theuser.

6. The method of any one of the previous aspects, wherein analyzing oneor more terms within the process plant search query to identify asubject of the process plant search query includes: obtaining aplurality of candidate process plant search query subjects; analyzingthe process plant search query to identify a likelihood that each of theplurality of candidate process plant search query subjects correspondsto the process plant search query; and identifying the subject as thecandidate process plant search query subject of the plurality ofcandidate process plant search query subjects having a highestlikelihood of corresponding to the process plant search query.

7. The method of any one of the previous aspects, further comprising:identifying the one or more terms within the process plant search queryassociated with the identified subject; and analyzing the one or moreremaining terms within the process plant search query to identify one ormore filters for filtering the data set.

8. The method of any one of the previous aspects, wherein processplant-related data that describes attributes of the process plantentities includes at least one of: configuration data, run-time data,environmental data, maintenance data, analysis data, or diagnostic data.

9. The method of any one of the previous aspects, wherein receiving aprocess plant search query includes receiving a voice-based processplant search query or receiving a text-based process plant search query.

10. The method of any one of the previous aspects, wherein providing aset of search results to the user includes providing the set of searchresults in an audio format or a text format for presentation at a userinterface device.

11. The method of any one of the previous aspects, wherein the knowledgerepository includes duplicates of the process plant-related datagenerated within the process plant and the computing device does notdirectly interact with the process plant-related data generated withinthe process plant.

12. A computing device for providing search results in response to aprocess plant search query comprising: one or more processors; acommunication unit; and one or more non-transitory computer-readablemedia coupled to the one or more processors and to the communicationunit, the one or more non-transitory computer-readable media storinginstructions thereon that, when executed by the one or more processors,cause the computing device to: receive a process plant search query froma user related to one or more process plant entities within a processplant; obtain a data set responsive to the process plant search queryfrom a knowledge repository in which process plant-related data thatdescribes attributes of the process plant entities is organizedaccording to semantic relations between the process plant-related dataand the process plant entities; and provide, via the communication unit,a set of search results to the user based on the obtained data setresponsive to the process plant search query.

13. The computing device of the previous aspect, wherein theinstructions further cause the computing device to: analyze one or moreterms within the process plant search query to identify a subject of theprocess plant search query; obtain the data set from the knowledgerepository including process plant-related data corresponding to thesubject of the process plant query; analyze one or more remaining termswithin the process plant search query to identify one or more filtersfor filtering the data set; filter the data set according to the one ormore filters; and provide the set of search results to the useraccording to the filtered data set.

14. The computing device of any one of aspects 12-13, wherein theinstructions further cause the computing device to: identify context forthe process plant search query; identify one or more additional filtersfor filtering the data set according to the context; and filter the dataset according to the one or more additional filters.

15. The computing device of any one of aspects 12-14, wherein thecontext includes an organizational role of the user, a location of theuser, a time of the process plant search query, or previous processplant search queries from the user.

16. The computing device of any one of aspects 12-15, wherein theinstructions further cause the computing device to: rank the set ofsearch results based on (i) context for the process plant search queryor (ii) an amount in which each search result corresponds to the one ormore remaining terms within the process plant search query; and providethe ranked set of search results to the user.

17. The computing device of any one of aspects 12-16, wherein to analyzeone or more terms within the process plant search query to identify asubject of the process plant search query, the instructions cause thecomputing device to: obtain a plurality of candidate process plantsearch query subjects; analyze the process plant search query toidentify a likelihood that each of the plurality of candidate processplant search query subjects corresponds to the process plant searchquery; and identify the subject as the candidate process plant searchquery subject of the plurality of candidate process plant search querysubjects having a highest likelihood of corresponding to the processplant search query.

18. The computing device of any one of aspects 12-17, wherein theinstructions further cause the computing device to: identify the one ormore terms within the process plant search query associated with theidentified subject; and analyze the one or more remaining terms withinthe process plant search query to identify one or more filters forfiltering the data set.

19. The computing device of any one of aspects 12-18, wherein processplant-related data that describes attributes of the process plantentities includes at least one of: configuration data, run-time data,environmental data, maintenance data, analysis data, or diagnostic data.

20. The computing device of any one of aspects 12-19, wherein theprocess plant search query includes a voice-based process plant searchquery or a text-based process plant search query.

21. The computing device of any one of aspects 12-20, wherein the set ofsearch results are provided in an audio format or a text format forpresentation at a user interface device.

22. The computing device of any one of aspects 12-21, wherein theknowledge repository includes duplicates of the process plant-relateddata generated within the process plant and the computing device doesnot directly interact with the process plant-related data generatedwithin the process plant.

23. A process control system comprising: one or more devicescorresponding to a process plant entity disposed in the process plantand performing a physical function to control an industrial process; adata diode communicatively connecting the one or more devices to acomputing device, the data diode configured to prevent two-waycommunications between a network of the process plant and the computingdevice; and the computing device comprising: one or more processors; acommunication unit; and one or more non-transitory computer-readablemedia coupled to the one or more processors and to the communicationunit, the one or more non-transitory computer-readable media storinginstructions thereon that, when executed by the one or more processors,cause the computing device to: receive, via the data diode and thecommunication unit, a duplicate of process plant-related data generatedby the one or more devices of the process plant while the process plantis on-line, the process plant-related data secured for transmission fromthe one or more devices to the computing device via the data diode;store the duplicate of the process plant-related data in a knowledgerepository in which the process plant-related data that describesattributes of the process plant entities is organized according tosemantic relations between the process plant-related data and theprocess plant entities; and provide at least some of the data from theknowledge repository to an application or other computing device.

24. The process control system of the previous aspect, wherein theinstructions further cause the computing device to: provide a subset ofthe duplicate of the process plant-related data as search results inresponse to a process plant search query.

25. A method for presenting process plant search results in response toa process plant search query, the method comprising: receiving, at auser interface device, a process plant search query from a user relatedto one or more process plant entities within a process plant; obtaining,by the user interface device, a set of process plant search results inresponse to the process plant search query; and presenting, by the userinterface device, the set of process plant search results within aprocess plant search results display, wherein each process plant searchresult includes a selectable link to process plant-related data withinthe process plant.

26. The method of the previous aspect, wherein presenting the set ofprocess plant search results within a process plant search resultsdisplay includes presenting each process plant search result with athumbnail image including a preview of the process plant-related datapresented in the selectable link.

27. The method of any one of aspects 25-26, further comprising:obtaining, by the user interface device, a plurality of process plantcategories corresponding to the set of process plant search results; foreach of the plurality of process plant categories, obtaining, by theuser interface device, a subset of the process plant search resultscorresponding to the respective process plant category; presenting, bythe user interface device, indications of each of the plurality ofprocess plant categories within the process plant search resultsdisplay; and for each of the plurality of process plant categories,presenting, by the user interface device, the subset of the processplant search results with the indication of the respective process plantcategory.

28. The method of any one of aspects 25-27, wherein presenting thesubset of the process plant search results with the indication of therespective process plant category includes: in response to receiving aselection of one of the indications of the plurality of s process plantcategories, presenting the subset of the process plant search resultscorresponding to the selected process plant category.

30. The method of any one of aspects 25-29, wherein obtaining a set ofprocess plant search results in response to the process plant searchquery includes: obtaining a ranked set of process plant search results,each process plant search result having a respective ranking; andpresenting the set of process plant search results in a ranked orderaccording to the respective rankings.

31. The method of any one of aspects 25-30, further comprising:determining a size or type of the user interface device; and adjustingthe presentation of the set of process plant search results within theprocess plant search results display based on the size or type of theuser interface device.

32. The method of any one of aspects 25-31, further comprising: inresponse to determining that the user interface device is a mobiledevice, presenting a single process plant search result within theprocess plant search results display.

33. The method of any one of aspects 25-32, further comprising: inresponse to determining that the size of the user interface device isabove a threshold size, presenting the set of process plant searchresults within the process plant search results display.

34. The method of any one of aspects 25-33, wherein obtaining a set ofprocess plant search results in response to the process plant searchquery includes: transmitting the process plant search query to a servercomputing device; and receiving the set of process plant search resultsfrom the server computing device.

35. The method of any one of aspects 25-34, wherein presenting the setof process plant search results, wherein each process plant searchresult includes a selectable link to process plant-related data includespresenting each process plant search result having a selectable link toat least one of: configuration data, run-time data, environmental data,maintenance data, analysis data, or diagnostic data.

36. The method of any one of aspects 25-35, wherein the selectable linkto process plant-related data within the process plant is a selectablelink to a duplicate of the process plant-related data within the processplant such that user interactions with the duplicate of the processplant-related data do not effect run-time operation of the processplant.

37. A user interface device for presenting process plant search resultsin response to a process plant search query, the user interface devicecomprising: one or more processors; a user interface; and one or morenon-transitory computer-readable media coupled to the one or moreprocessors and to the user interface, the one or more non-transitorycomputer-readable media storing instructions thereon that, when executedby the one or more processors, cause the user interface device to:receive a process plant search query from a user related to one or moreprocess plant entities within a process plant; obtain a set of processplant search results in response to the process plant search query; andpresent the set of process plant search results within a process plantsearch results display, wherein each process plant search resultincludes a selectable link to process plant-related data within theprocess plant.

38. The user interface device of the previous aspect, wherein eachprocess plant search result is presented with a thumbnail imageincluding a preview of the process plant-related data presented in theselectable link.

39. The user interface device of any one of aspects 37-38, wherein theinstructions further cause the user interface device to: obtain aplurality of process plant categories corresponding to the set ofprocess plant search results; for each of the plurality of process plantcategories, obtain a subset of the process plant search resultscorresponding to the respective process plant category; present, via theuser interface, indications of each of the plurality of process plantcategories within the process plant search results display; and for eachof the plurality of process plant categories, present, via the userinterface, the subset of the process plant search results with theindication of the respective process plant category.

40. The user interface device of any one of aspects 37-39, wherein topresent the subset of the process plant search results with theindication of the respective process plant category, the instructionscause the user interface device to: in response to receiving a selectionof one of the indications of the plurality of s process plantcategories, present, via the user interface, the subset of the processplant search results corresponding to the selected process plantcategory.

41. The user interface device of any one of aspects 37-40, wherein toobtain a set of process plant search results in response to the processplant search query, the instructions cause the user interface device to:obtain a ranked set of process plant search results, each process plantsearch result having a respective ranking; and present, via the userinterface, the set of process plant search results in a ranked orderaccording to the respective rankings.

42. The user interface device of any one of aspects 37-41, wherein theinstructions further cause the user interface device to: determine asize or type of the user interface device; and adjust the presentationof the set of process plant search results within the process plantsearch results display based on the size or type of the user interfacedevice.

43. The user interface device of any one of aspects 37-42, wherein theinstructions further cause the user interface device to: in response todetermining that the user interface device is a mobile device, present,via the user interface, a single process plant search result within theprocess plant search results display.

44. The user interface device of any one of aspects 37-43, furthercomprising a speaker, wherein the instructions further cause the userinterface device to: present, via the speaker, a summary of the processplant-related data associated with the single process plant searchresult in an audio format.

45. The user interface device of any one of aspects 37-44, wherein theinstructions further cause the user interface device to: in response todetermining that the size of the user interface device is above athreshold size, present, via the user interface, the set of processplant search results within the process plant search results display.

46. The user interface device of any one of aspects 37-45, wherein toobtain a set of process plant search results in response to the processplant search query, the instructions cause the user interface device to:transmit the process plant search query to a server computing device;and receive the set of process plant search results from the servercomputing device.

47. The user interface device of any one of aspects 37-46, wherein theprocess plant-related data includes at least one of: configuration data,run-time data, environmental data, maintenance data, analysis data, ordiagnostic data.

48. The user interface device of any one of aspects 37-47, wherein theselectable link to process plant-related data within the process plantis a selectable link to a duplicate of the process plant-related datawithin the process plant such that user interactions with the duplicateof the process plant-related data do not effect run-time operation ofthe process plant.

49. A non-transitory computer-readable medium storing instructionsthereon that, when executed by the one or more processors, cause the oneor more processors to: receive a process plant search query from a userrelated to one or more process plant entities within a process plant;obtain a set of process plant search results in response to the processplant search query; and present the set of process plant search resultswithin a process plant search results display of a user interfacedevice, wherein each process plant search result includes a selectablelink to process plant-related data within the process plant.

50. The non-transitory computer-readable medium of the previous aspect,wherein each process plant search result is presented with a thumbnailimage including a preview of the process plant-related data presented inthe selectable link.

51. The non-transitory computer-readable medium of any one of aspects49-50, wherein the instructions further cause the one or more processorsto: obtain a plurality of process plant categories corresponding to theset of process plant search results; for each of the plurality ofprocess plant categories, obtain a subset of the process plant searchresults corresponding to the respective process plant category; present,via the user interface, indications of each of the plurality of processplant categories within the process plant search results display; andfor each of the plurality of process plant categories, present, via theuser interface, the subset of the process plant search results with theindication of the respective process plant category.

52. The non-transitory computer-readable medium of any one of aspects49-51, wherein the instructions further cause the one or more processorsto: determine a size or type of the user interface device; and adjustthe presentation of the set of process plant search results within theprocess plant search results display based on the size or type of theuser interface device

53. A method for presenting process plant-related data within a vehiclehead unit, the method comprising: receiving, at a process plantapplication executing in a vehicle head unit, process plant-related datarelated to one or more process plant entities within a process plant,the one or more process plant entities performing a physical function tocontrol an industrial process; and presenting, by the vehicle head unit,the process plant-related data for a user to remotely monitor onlineoperation of the process plant, wherein the process plant-related datais a duplicate of process plant-related data generated within theprocess plant, such that the vehicle head unit does not directlyinteract with the process plant-related data generated within theprocess plant.

54. The method of the previous aspect, further comprising: determiningan organizational role of the user within the process plant, whereinpresenting the process plant-related data for a user to remotely monitoronline operation of the process plant includes presenting a subset ofthe process plant-related data which is related to the organizationalrole of the user.

55. The method of any one of aspects 53-54, further comprising: inresponse to an event occurring within the online operation of theprocess plant and related to the organizational role of the user,presenting a notification regarding at least some of the processplant-related data associated with the event.

56. The method of any one of aspects 53-55, wherein presenting theprocess plant-related data for a user to remotely monitor onlineoperation of the process plant includes presenting a report regarding atleast one of the one or more process plant entities related to theorganizational role of the user, the report including at least some ofthe process plant-related data related to the at least one process plantentity.

57. The method of any one of aspects 53-56, further comprising:determining a speed of the vehicle; comparing the speed of the vehicleto a threshold speed; and in response to determining that the speed ofthe vehicle exceeds the threshold speed, presenting a condensed versionof the report regarding the at least one process plant entity related tothe organizational role of the user in an audio format.

58. The method of any one of aspects 53-57, wherein presenting theprocess plant-related data for a user to remotely monitor onlineoperation of the process plant includes presenting a graphicalrepresentation of a process flow module depicting run-time operation ofat least one of the one or more process plant entities including processparameter data for the at least one process plant entity.

59. The method of any one of aspects 53-58, further comprising:presenting the process plant-related data on a user interface of thevehicle head unit.

60. The method of any one of aspects 53-59, further comprising:presenting the process plant-related data via a speaker of the vehiclehead unit.

61. The method of any one of aspects 53-60, further comprising:presenting the process plant-related data in a natural language format.

62. The method of any one of aspects 53-61, further comprising:receiving a process plant search query from the user related to the oneor more process plant entities; and presenting, by the vehicle headunit, a set of process plant search results responsive to the processplant search query, the set of process plant search results including atleast some of the process plant-related data.

63. A vehicle head unit comprising: one or more processors; a userinterface; a speaker; and one or more non-transitory computer-readablemedia coupled to the one or more processors, the one or morenon-transitory computer-readable media storing a process plantapplication thereon that, when executed by the one or more processors,cause the vehicle head unit to: receive process plant-related datarelated to one or more process plant entities within a process plant,the one or more process plant entities performing a physical function tocontrol an industrial process; and present, via the user interface orthe speaker, the process plant-related data for a user to remotelymonitor online operation of the process plant, wherein the processplant-related data is a duplicate of process plant-related datagenerated within the process plant, such that the vehicle head unit doesnot directly interact with the process plant-related data generatedwithin the process plant.

64. The vehicle head unit of the previous aspect, wherein the processplant application further causes the vehicle head unit to: determine anorganizational role of the user within the process plant; and present asubset of the process plant-related data which is related to theorganizational role of the user.

65. The vehicle head unit of any one of aspects 63-64, wherein theprocess plant application further causes the vehicle head unit to: inresponse to an event occurring within the online operation of theprocess plant and related to the organizational role of the user,present a notification regarding at least some of the processplant-related data associated with the event.

66. The vehicle head unit of any one of aspects 63-65, wherein topresent the process plant-related data for a user to remotely monitoronline operation of the process plant, the process plant applicationcauses the vehicle head unit to present a report regarding at least oneof the one or more process plant entities related to the organizationalrole of the user, the report including at least some of the processplant-related data related to the at least one process plant entity.

67. The vehicle head unit of any one of aspects 63-66, wherein theprocess plant application further causes the vehicle head unit to:determine a speed of the vehicle; compare the speed of the vehicle to athreshold speed; and in response to determining that the speed of thevehicle exceeds the threshold speed, present a condensed version of thereport regarding the at least one process plant entity related to theorganizational role of the user in an audio format.

68. The vehicle head unit of any one of aspects 63-67, wherein topresent the process plant-related data for a user to remotely monitoronline operation of the process plant, the process plant applicationcauses the vehicle head unit to present a graphical representation of aprocess flow module depicting run-time operation of at least one of theone or more process plant entities including process parameter data forthe at least one process plant entity.

69. The vehicle head unit of any one of aspects 63-68, wherein theprocess plant application further causes the vehicle head unit to:present the process plant-related data in a natural language format.

70. The vehicle head unit of any one of aspects 63-69, wherein theprocess plant application further causes the vehicle head unit to:receive a process plant search query from the user related to the one ormore process plant entities; and present a set of process plant searchresults responsive to the process plant search query, the set of processplant search results including at least some of the processplant-related data.

71. A non-transitory computer-readable medium storing instructionsthereon that, when executed by the one or more processors in a vehiclehead unit, cause the vehicle head unit to: receive process plant-relateddata related to one or more process plant entities within a processplant, the one or more process plant entities performing a physicalfunction to control an industrial process; and present, via a userinterface or a speaker of the vehicle head unit, the processplant-related data for a user to remotely monitor online operation ofthe process plant, wherein the process plant-related data is a duplicateof process plant-related data generated within the process plant, suchthat the vehicle head unit does not directly interact with the processplant-related data generated within the process plant.

72. The non-transitory computer-readable medium of the previous aspect,wherein the process plant application further causes the vehicle headunit to: determine an organizational role of the user within the processplant; and present a subset of the process plant-related data which isrelated to the organizational role of the user.

73. The non-transitory computer-readable medium of any one of aspects71-72, wherein the process plant application further causes the vehiclehead unit to: in response to an event occurring within the onlineoperation of the process plant and related to the organizational role ofthe user, present a notification regarding at least some of the processplant-related data associated with the event.

74. The non-transitory computer-readable medium of any one of aspects71-73, wherein to present the process plant-related data for a user toremotely monitor online operation of the process plant, the processplant application causes the vehicle head unit to present a reportregarding at least one of the one or more process plant entities relatedto the organizational role of the user, the report including at leastsome of the process plant-related data related to the at least oneprocess plant entity.

75. The non-transitory computer-readable medium of any one of aspects71-74, wherein the process plant application further causes the vehiclehead unit to: determine a speed of the vehicle; compare the speed of thevehicle to a threshold speed; and in response to determining that thespeed of the vehicle exceeds the threshold speed, present a condensedversion of the report regarding the at least one process plant entityrelated to the organizational role of the user in an audio format.

76. The non-transitory computer-readable medium of any one of aspects71-75, wherein to present the process plant-related data for a user toremotely monitor online operation of the process plant, the processplant application causes the vehicle head unit to present a graphicalrepresentation of a process flow module depicting run-time operation ofat least one of the one or more process plant entities including processparameter data for the at least one process plant entity.

77. The non-transitory computer-readable medium of any one of aspects71-76, wherein the process plant application further causes the vehiclehead unit to: present the process plant-related data in a naturallanguage format.

78. The non-transitory computer-readable medium of any one of aspects71-77, wherein the process plant application further causes the vehiclehead unit to: receive a process plant search query from the user relatedto the one or more process plant entities; and present a set of processplant search results responsive to the process plant search query, theset of process plant search results including at least some of theprocess plant-related data.

When implemented in software, any of the applications, services, andengines described herein may be stored in any tangible, non-transitorycomputer readable memory such as on a magnetic disk, a laser disk, solidstate memory device, molecular memory storage device, or other storagemedium, in a RAM or ROM of a computer or processor, etc. Although theexample systems disclosed herein are disclosed as including, among othercomponents, software and/or firmware executed on hardware, it should benoted that such systems are merely illustrative and should not beconsidered as limiting. For example, it is contemplated that any or allof these hardware, software, and firmware components could be embodiedexclusively in hardware, exclusively in software, or in any combinationof hardware and software. Accordingly, while the example systemsdescribed herein are described as being implemented in software executedon a processor of one or more computer devices, persons of ordinaryskill in the art will readily appreciate that the examples provided arenot the only way to implement such systems.

Thus, while the present invention has been described with reference tospecific examples, which are intended to be illustrative only and not tobe limiting of the invention, it will be apparent to those of ordinaryskill in the art that changes, additions or deletions may be made to thedisclosed embodiments without departing from the spirit and scope of theinvention.

What is claimed:
 1. A method for presenting process plant search resultsin response to a process plant search query, the method comprising:receiving, at a user interface device, a process plant search query froma user related to one or more process plant entities within a processplant; obtaining, by the user interface device, a set of process plantsearch results in response to the process plant search query; andpresenting, by the user interface device, the set of process plantsearch results within a process plant search results display, whereineach process plant search result includes a selectable link to processplant-related data within the process plant.
 2. The method of claim 1,wherein presenting the set of process plant search results within aprocess plant search results display includes presenting each processplant search result with a thumbnail image including a preview of theprocess plant-related data presented in the selectable link.
 3. Themethod of claim 1, further comprising: obtaining, by the user interfacedevice, a plurality of process plant categories corresponding to the setof process plant search results; for each of the plurality of processplant categories, obtaining, by the user interface device, a subset ofthe process plant search results corresponding to the respective processplant category; presenting, by the user interface device, indications ofeach of the plurality of process plant categories within the processplant search results display; and for each of the plurality of processplant categories, presenting, by the user interface device, the subsetof the process plant search results with the indication of therespective process plant category.
 4. The method of claim 3, whereinpresenting the subset of the process plant search results with theindication of the respective process plant category includes: inresponse to receiving a selection of one of the indications of theplurality of s process plant categories, presenting the subset of theprocess plant search results corresponding to the selected process plantcategory.
 5. The method of claim 1, wherein obtaining a set of processplant search results in response to the process plant search queryincludes: obtaining a ranked set of process plant search results, eachprocess plant search result having a respective ranking; and presentingthe set of process plant search results in a ranked order according tothe respective rankings.
 6. The method of claim 1, further comprising:determining a size or type of the user interface device; and adjustingthe presentation of the set of process plant search results within theprocess plant search results display based on the size or type of theuser interface device.
 7. The method of claim 6, further comprising: inresponse to determining that the user interface device is a mobiledevice, presenting a single process plant search result within theprocess plant search results display.
 8. The method of claim 6, furthercomprising: in response to determining that the size of the userinterface device is above a threshold size, presenting the set ofprocess plant search results within the process plant search resultsdisplay.
 9. The method of claim 1, wherein obtaining a set of processplant search results in response to the process plant search queryincludes: transmitting the process plant search query to a servercomputing device; and receiving the set of process plant search resultsfrom the server computing device.
 10. The method of claim 1, whereinpresenting the set of process plant search results, wherein each processplant search result includes a selectable link to process plant-relateddata includes presenting each process plant search result having aselectable link to at least one of: configuration data, run-time data,environmental data, maintenance data, analysis data, or diagnostic data.11. The method of claim 1, wherein the selectable link to processplant-related data within the process plant is a selectable link to aduplicate of the process plant-related data within the process plantsuch that user interactions with the duplicate of the processplant-related data do not effect run-time operation of the processplant.
 12. A user interface device for presenting process plant searchresults in response to a process plant search query, the user interfacedevice comprising: one or more processors; a user interface; and one ormore non-transitory computer-readable media coupled to the one or moreprocessors and to the user interface, the one or more non-transitorycomputer-readable media storing instructions thereon that, when executedby the one or more processors, cause the user interface device to:receive a process plant search query from a user related to one or moreprocess plant entities within a process plant; obtain a set of processplant search results in response to the process plant search query; andpresent the set of process plant search results within a process plantsearch results display, wherein each process plant search resultincludes a selectable link to process plant-related data within theprocess plant.
 13. The user interface device of claim 12, wherein eachprocess plant search result is presented with a thumbnail imageincluding a preview of the process plant-related data presented in theselectable link.
 14. The user interface device of claim 12, wherein theinstructions further cause the user interface device to: obtain aplurality of process plant categories corresponding to the set ofprocess plant search results; for each of the plurality of process plantcategories, obtain a subset of the process plant search resultscorresponding to the respective process plant category; present, via theuser interface, indications of each of the plurality of process plantcategories within the process plant search results display; and for eachof the plurality of process plant categories, present, via the userinterface, the subset of the process plant search results with theindication of the respective process plant category.
 15. The userinterface device of claim 14, wherein to present the subset of theprocess plant search results with the indication of the respectiveprocess plant category, the instructions cause the user interface deviceto: in response to receiving a selection of one of the indications ofthe plurality of s process plant categories, present, via the userinterface, the subset of the process plant search results correspondingto the selected process plant category.
 16. The user interface device ofclaim 12, wherein to obtain a set of process plant search results inresponse to the process plant search query, the instructions cause theuser interface device to: obtain a ranked set of process plant searchresults, each process plant search result having a respective ranking;and present, via the user interface, the set of process plant searchresults in a ranked order according to the respective rankings.
 17. Theuser interface device of claim 12, wherein the instructions furthercause the user interface device to: determine a size or type of the userinterface device; and adjust the presentation of the set of processplant search results within the process plant search results displaybased on the size or type of the user interface device.
 18. The userinterface device of claim 17, wherein the instructions further cause theuser interface device to: in response to determining that the userinterface device is a mobile device, present, via the user interface, asingle process plant search result within the process plant searchresults display.
 19. The user interface device of claim 18, furthercomprising a speaker, wherein the instructions further cause the userinterface device to: present, via the speaker, a summary of the processplant-related data associated with the single process plant searchresult in an audio format.
 20. The user interface device of claim 17,wherein the instructions further cause the user interface device to: inresponse to determining that the size of the user interface device isabove a threshold size, present, via the user interface, the set ofprocess plant search results within the process plant search resultsdisplay.
 21. The user interface device of claim 12, wherein to obtain aset of process plant search results in response to the process plantsearch query, the instructions cause the user interface device to:transmit the process plant search query to a server computing device;and receive the set of process plant search results from the servercomputing device.
 22. The user interface device of claim 12, wherein theprocess plant-related data includes at least one of: configuration data,run-time data, environmental data, maintenance data, analysis data, ordiagnostic data.
 23. The user interface device of claim 12, wherein theselectable link to process plant-related data within the process plantis a selectable link to a duplicate of the process plant-related datawithin the process plant such that user interactions with the duplicateof the process plant-related data do not effect run-time operation ofthe process plant.
 24. A non-transitory computer-readable medium storinginstructions thereon that, when executed by the one or more processors,cause the one or more processors to: receive a process plant searchquery from a user related to one or more process plant entities within aprocess plant; obtain a set of process plant search results in responseto the process plant search query; and present the set of process plantsearch results within a process plant search results display of a userinterface device, wherein each process plant search result includes aselectable link to process plant-related data within the process plant.25. The non-transitory computer-readable medium of claim 24, whereineach process plant search result is presented with a thumbnail imageincluding a preview of the process plant-related data presented in theselectable link.
 26. The non-transitory computer-readable medium ofclaim 24, wherein the instructions further cause the one or moreprocessors to: obtain a plurality of process plant categoriescorresponding to the set of process plant search results; for each ofthe plurality of process plant categories, obtain a subset of theprocess plant search results corresponding to the respective processplant category; present, via the user interface, indications of each ofthe plurality of process plant categories within the process plantsearch results display; and for each of the plurality of process plantcategories, present, via the user interface, the subset of the processplant search results with the indication of the respective process plantcategory.
 27. The non-transitory computer-readable medium of claim 24,wherein the instructions further cause the one or more processors to:determine a size or type of the user interface device; and adjust thepresentation of the set of process plant search results within theprocess plant search results display based on the size or type of theuser interface device.